Lingua

MethodHandles.Lookup.FindVarHandle(Class, String, Class) Metodo

Definizione

Produce un valore VarHandle che concede l'accesso a un campo name non statico di tipo type dichiarato in una classe di tipo 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

Parametri

recv
Class

classe ricevitore, di tipo R, che dichiara il campo non statico

name
String

nome del campo

type
Class

tipo di campo, di tipo T

Valori restituiti

VarHandle che concede l'accesso a campi non statici.

Attributi

Commenti

Produce un valore VarHandle che concede l'accesso a un campo name non statico di tipo type dichiarato in una classe di tipo recv. Il tipo di variabile varHandle è type e ha un tipo di coordinata, recv.

Il controllo di accesso viene eseguito immediatamente per conto della classe di ricerca.

Alcune modalità di accesso dell'oggetto VarHandle restituito non sono supportate nelle condizioni seguenti: <ul><li>se il campo è dichiarato final, la scrittura, l'aggiornamento atomico, l'aggiornamento numerico e le modalità di accesso agli aggiornamenti atomici bit per bit non sono supportate. <li>se il tipo di campo è diverso da byte, short, charint, , long, floato double le modalità di accesso agli aggiornamenti atomici numerici non sono supportate. <li>se il tipo di campo è diverso da boolean, byte, short, charo intlong quindi le modalità di accesso agli aggiornamenti atomici bit per bit non sono supportate. </ul>

Se il campo viene dichiarato volatile , l'oggetto VarHandle restituito eseguirà l'override dell'accesso al campo (ignorando effettivamente la volatile dichiarazione) in base alle modalità di accesso specificate.

Se il tipo di campo è float o double quindi le modalità di accesso agli aggiornamenti numerici e atomiche confrontano i valori usando la relativa rappresentazione bit per bit (vedere Float#floatToRawIntBits rispettivamente e Double#doubleToRawLongBits).

Aggiunta in 9.

per java.lang.invoke.MethodHandles.Lookup.findVarHandle(java.lang.Class<?>, java.lang.String, java.lang.Class<?>).

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a