MethodHandles.Lookup.UnreflectVarHandle(Field) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Produit un VarHandle donnant accès à un champ f de type T réfléchi déclaré dans une classe de type 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
Paramètres
- f
- Field
le champ réfléchi, avec un champ de type Tet une classe déclarante de type R
Retours
VarHandle donnant accès à des champs non statiques ou à un champ statique
- Attributs
Remarques
Produit un VarHandle donnant accès à un champ f de type T réfléchi déclaré dans une classe de type R. Le type de variable varHandle est T. Si le champ n’est pas statique, varHandle a un type de coordonnées. R Sinon, le champ est statique et varHandle n’a aucun type de coordonnées.
La vérification d’accès est effectuée immédiatement au nom de la classe de recherche, quelle que soit la valeur de l’indicateur du accessible champ.
Si le champ est statique et si le VarHandle retourné est activé, la classe déclarante du champ est initialisée, si elle n’a pas déjà été initialisée.
Certains modes d’accès du VarHandle retourné ne sont pas pris en charge dans les conditions suivantes : <ul<>li>si le champ est déclaréfinal, la mise à jour atomique, la mise à jour atomique numérique et les modes d’accès aux mises à jour atomiques au niveau du bit ne sont pas pris en charge.
<li>si le type de champ est autre que byte, , short, charint, long, , , floatou double alors les modes d’accès aux mises à jour atomiques numériques ne sont pas pris en charge.
<li>si le type de champ est autre que boolean, , byte, short, char, int ou long alors les modes d’accès aux mises à jour atomiques au niveau du bit ne sont pas pris en charge.
</ul>
Si le champ est déclaré volatile , le VarHandle retourné remplace l’accès au champ (ignore efficacement la volatile déclaration) conformément à ses modes d’accès spécifiés.
Si le type de champ est float ou double si les modes d’accès aux mises à jour numériques et atomiques comparent les valeurs à l’aide de leur représentation au niveau du bit (voir Float#floatToRawIntBits et Double#doubleToRawLongBits, respectivement).
Ajouté dans 9.
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.