MethodHandles.Lookup.UnreflectVarHandle(Field) メソッド

定義

R型のクラスで宣言T型の反映フィールド fへのアクセスを許可する VarHandle を生成します。

[Android.Runtime.Register("unreflectVarHandle", "(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;", "", ApiSince=33)]
public Java.Lang.Invoke.VarHandle UnreflectVarHandle(Java.Lang.Reflect.Field f);
[<Android.Runtime.Register("unreflectVarHandle", "(Ljava/lang/reflect/Field;)Ljava/lang/invoke/VarHandle;", "", ApiSince=33)>]
member this.UnreflectVarHandle : Java.Lang.Reflect.Field -> Java.Lang.Invoke.VarHandle

パラメーター

f
Field

T型のフィールドと型の宣言クラスを持つ、反映されたフィールドR

返品

非静的フィールドまたは静的フィールドへのアクセスを許可する VarHandle

属性

注釈

R型のクラスで宣言T型の反映フィールド fへのアクセスを許可する VarHandle を生成します。 VarHandle の変数型は T。 フィールドが静的でない場合、VarHandle には 1 つの座標型 R。 それ以外の場合、フィールドは静的であり、VarHandle には座標型がありません。

フィールドの accessible フラグの値に関係なく、ルックアップ クラスの代わりにアクセス チェックが直ちに実行されます。

フィールドが静的で、返された VarHandle が操作されている場合、フィールドの宣言クラスがまだ初期化されていない場合は初期化されます。

返される VarHandle の特定のアクセス モードは、 <ul><li>フィールドが final宣言されている場合、書き込み、アトミック更新、数値アトミック更新、ビットごとのアトミック更新アクセス モードはサポートされません。 <li>フィールドの種類が byteshortcharintlongfloat、または double 以外の場合、数値アトミック更新アクセス モードはサポートされません。 <li>フィールドの種類が booleanbyteshortcharint 、または long 以外の場合、ビットごとのアトミック更新アクセス モードはサポートされません。 </ul>

フィールドが volatile 宣言されている場合、返された VarHandle は、指定されたアクセス モードに従ってフィールドへのアクセスをオーバーライドします (実質的に volatile 宣言は無視されます)。

フィールド型が float または double の場合、数値およびアトミック更新アクセス モードはビットごとの表現を使用して値を比較します (それぞれ Float#floatToRawIntBitsDouble#doubleToRawLongBitsを参照)。

9 に追加されました。

Javaドキュメント。

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

適用対象