語言

MethodHandles.Lookup.FindStaticVarHandle(Class, String, Class) 方法

定義

產生一個 VarHandle,允許存取類型為 的靜態欄位,該欄位nametype在類型 decl的類別中宣告。

[Android.Runtime.Register("findStaticVarHandle", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;", "", ApiSince=33)]
public Java.Lang.Invoke.VarHandle FindStaticVarHandle(Java.Lang.Class decl, string name, Java.Lang.Class type);
[<Android.Runtime.Register("findStaticVarHandle", "(Ljava/lang/Class;Ljava/lang/String;Ljava/lang/Class;)Ljava/lang/invoke/VarHandle;", "", ApiSince=33)>]
member this.FindStaticVarHandle : Java.Lang.Class * string * Java.Lang.Class -> Java.Lang.Invoke.VarHandle

參數

decl
Class

宣告靜態場的類別

name
String

該田名稱

type
Class

場的類型,類型 T

傳回

一個 VarHandle 提供靜態欄位存取

屬性

備註

產生一個 VarHandle,允許存取類型為 的靜態欄位,該欄位nametype在類型 decl的類別中宣告。 VarHandle 的變數型別是 , type 且沒有座標型別。

存取檢查會立即代表查詢類別執行。

若對回傳的 VarHandle 進行操作,宣告類別將被初始化(若尚未初始化)。

回傳 VarHandle 的某些存取模式在以下條件下不被支援:<ul<>li>如果欄位被宣告final為 ,則寫入、原子更新、數值原子更新及位元原子更新存取模式皆不被支援。 <LI>如果欄位類型不是 byte、 short、 char、 floatintlong或 double,則不支援數值原子更新存取模式。 <如果>欄位類型不是 boolean、 byte、 short、 char, int 則 long 不支援位元原子更新存取模式。 </ul>

若欄位被宣告 volatile ,回傳的 VarHandle 會依照指定的存取模式覆蓋該欄位的存取(實際上忽略宣 volatile 告)。

若欄位類型為 float 或 double ,則數值更新與原子更新存取模式會使用其位元表示法比較值(分別參見 Float#floatToRawIntBits 和 Double#doubleToRawLongBits)。

新增9。

Java 文件 java.lang.invoke.MethodHandles.Lookup.findStaticVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>)。

本頁部分內容為基於 Open Source Project 所創建與分享的作品,並依授權條款所描述的使用進行修改。

適用於