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

定義

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

[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

属性

注釈

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

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

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

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

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

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

9 に追加されました。

java.lang.invoke.MethodHandles.Lookup.unreflectVarHandle(java.lang.reflect.Field)Java ドキュメント。

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

適用対象