ISafeVarargs インターフェイス
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。
[Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")]
public interface ISafeVarargs : IDisposable, Java.Interop.IJavaPeerable, Java.Lang.Annotation.IAnnotation
[<Android.Runtime.Register("java/lang/SafeVarargs", "", "Java.Lang.ISafeVarargsInvoker")>]
type ISafeVarargs = interface
interface IAnnotation
interface IJavaObject
interface IDisposable
interface IJavaPeerable
- 属性
- 実装
注釈
注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。 この注釈をメソッドまたはコンストラクターに適用すると、 再認識できない 変数アリティ (vararg) 型に関するチェックされていない警告が抑制され、呼び出しサイトでのパラメーター化された配列の作成に関するチェックされていない警告が抑制されます。
Target @Targetメタ注釈によって課される使用制限に加えて、コンパイラは、この注釈型に追加の使用制限を実装する必要があります。メソッドまたはコンストラクターの宣言に@SafeVarargs注釈が付いている場合はコンパイル時エラーです。また、<ul><li>宣言は固定のアリティ メソッドまたはコンストラクターです。
<li> 宣言は、 static でも final でも privateでもない変数アリティメソッドです。
</ul>
コンパイラは、この注釈型がメソッドまたはコンストラクター宣言に適用されるときに警告を発行することをお勧めします。
<ul>
<li> 変数アリティ パラメーターには、プリミティブ型、 Object、および Stringを含む再認識可能な要素型があります。 (この注釈型によって抑制されるチェックされていない警告は、再び有効な要素型に対しては既に発生しません)。
<li> メソッドまたはコンストラクター宣言の本体は、変数アリティ パラメーターの配列の要素への代入など、安全でない可能性のある操作を実行し、チェックされていない警告を生成します。 一部の安全でない操作では、オフの警告はトリガーされません。 たとえば、〘
<blockquote>
@SafeVarargs // Not actually safe!
static void m(List<String>... stringLists) {
Object[] array = stringLists;
List<Integer> tmpList = Arrays.asList(42);
array[0] = tmpList; // Semantically invalid, but compiles without warnings
String s = stringLists[0].get(0); // Oh no, ClassCastException at runtime!
}
</blockquote>
は、実行時に ClassCastException につながります。
プラットフォームの将来のバージョンでは、このような安全でない操作に対するコンパイラ エラーが必要になる場合があります。
</ul>
1.7 で追加されました。
このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。
プロパティ
| 名前 | 説明 |
|---|---|
| Handle |
基になる Android オブジェクトの JNI 値を取得します。 (継承元 IJavaObject) |
| JniIdentityHashCode |
ラップされたインスタンスの |
| JniManagedPeerState |
マネージド ピアの状態。 (継承元 IJavaPeerable) |
| JniObjectReferenceControlBlock |
注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。 (継承元 IJavaPeerable) |
| JniPeerMembers |
メンバー アクセスと呼び出しのサポート。 (継承元 IJavaPeerable) |
| PeerReference |
ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。 (継承元 IJavaPeerable) |
メソッド
| 名前 | 説明 |
|---|---|
| AnnotationType() |
この注釈の注釈インターフェイスを返します。 (継承元 IAnnotation) |
| Disposed() |
インスタンスが破棄されたときに呼び出されます。 (継承元 IJavaPeerable) |
| DisposeUnlessReferenced() |
このインスタンスへの未処理の参照がない場合は、 |
| Equals(Object) |
指定したオブジェクトがこのオブジェクトと論理的に等価な注釈を表す場合は true を返します。 (継承元 IAnnotation) |
| Finalized() |
インスタンスが終了したときに呼び出されます。 (継承元 IJavaPeerable) |
| GetHashCode() |
この注釈のハッシュ コードを返します。 (継承元 IAnnotation) |
| SetJniIdentityHashCode(Int32) |
|
| SetJniManagedPeerState(JniManagedPeerStates) |
注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。 (継承元 IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
|
| ToString() |
この注釈の文字列形式を返します。 (継承元 IAnnotation) |
| UnregisterFromRuntime() |
ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。 (継承元 IJavaPeerable) |
拡張メソッド
| 名前 | 説明 |
|---|---|
| GetJniTypeName(IJavaPeerable) |
インスタンス |
| JavaAs<TResult>(IJavaPeerable) |
|
| JavaCast<TResult>(IJavaObject) |
Android ランタイムチェック型変換を実行します。 |
| JavaCast<TResult>(IJavaObject) |
注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。 |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
|