言語

ISafeVarargs インターフェイス

定義

注釈付きメソッドまたはコンストラクターの本体が 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>

&#64;SafeVarargs // Not actually safe!
            static void m(List&lt;String&gt;... stringLists) {
              Object[] array = stringLists;
              List&lt;Integer&gt; 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 で追加されました。

Javaドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
AnnotationType()

この注釈の注釈インターフェイスを返します。

(継承元 IAnnotation)
Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Equals(Object)

指定したオブジェクトがこのオブジェクトと論理的に等価な注釈を表す場合は true を返します。

(継承元 IAnnotation)
Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
GetHashCode()

この注釈のハッシュ コードを返します。

(継承元 IAnnotation)
SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
ToString()

この注釈の文字列形式を返します。

(継承元 IAnnotation)
UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

注釈付きメソッドまたはコンストラクターの本体が varargs パラメーターに対して安全でない可能性のある操作を実行しないことを示すプログラマ アサーション。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象