MethodHandles.Lookup.UnreflectVarHandle(Field) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
產生一個 VarHandle,提供存取類型中宣告R的反射欄位。fT
[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 可存取非靜態欄位或靜態欄位
- 屬性
備註
產生一個 VarHandle,提供存取類型中宣告R的反射欄位。fT VarHandle 的變數類型為 T。 若欄位非靜態,VarHandle 只有一個座標類型。 R 否則,場是靜態的,且 VarHandle 沒有座標型別。
存取檢查會立即代表查找類別執行,無論欄位旗 accessible 標的值為何。
如果欄位是靜態的,且回傳的 VarHandle作,該欄位的宣告類別會被初始化,如果尚未初始化的話。
回傳 VarHandle 的某些存取模式在以下條件下不被支援:<ul<>li>如果欄位被宣告final為 ,則寫入、原子更新、數值原子更新及位元原子更新存取模式皆不被支援。
<如果>欄位類型不是 byte、 short、 char、 int、 longfloat、 ,則double不支援數值原子更新存取模式。
<如果>欄位類型不是 boolean、 byte、 short、 char, int 則 long 不支援位元原子更新存取模式。
</ul>
若欄位被宣告 volatile ,回傳的 VarHandle 會依照指定的存取模式覆蓋該欄位的存取(實際上忽略宣 volatile 告)。
若欄位類型為 float 或 double ,則數值更新與原子更新存取模式會使用其位元表示法比較值(分別參見 Float#floatToRawIntBits 和 Double#doubleToRawLongBits)。
新增9。
Java 文件 java.lang.invoke.MethodHandles.Lookup.unreflectVarHandle(java.lang.reflect.Field)。
本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。