語言

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

定義

產生一個 VarHandle,提供存取類型中宣告的非靜態欄位nametype。recv

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

參數

recv
Class

受控類別, R類型為 ,宣告非靜態場

name
String

該田名稱

type
Class

場的類型,類型 T

傳回

一個 VarHandle 提供非靜態欄位存取。

屬性

備註

產生一個 VarHandle,提供存取類型中宣告的非靜態欄位nametype。recv VarHandle 的變數類型為 type ,且有一個座標類型 recv。

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

回傳 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.findVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>)。

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

適用於