MethodHandles.Lookup.UnreflectVarHandle(Field) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
Erzeugt eine VarHandle, die Zugriff auf ein reflektiertes Feld f vom Typ T gibt, das in einer Klasse des Typs Rdeklariert ist.
[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
Parameter
- f
- Field
das reflektierte Feld mit einem Feld vom Typ Tund einer deklarierenden Klasse des Typs R
Gibt zurück
ein VarHandle, das Zugriff auf nicht statische Felder oder ein statisches Feld ermöglicht
- Attribute
Hinweise
Erzeugt eine VarHandle, die Zugriff auf ein reflektiertes Feld f vom Typ T gibt, das in einer Klasse des Typs Rdeklariert ist. Der Variablentyp varHandle lautet T. Wenn das Feld nicht statisch ist, weist varHandle einen Koordinatentyp auf. R Andernfalls ist das Feld statisch, und varHandle hat keine Koordinatentypen.
Die Zugriffsüberprüfung wird sofort im Auftrag der Nachschlageklasse ausgeführt, unabhängig vom Wert des Feldkennzeichnungs accessible .
Wenn das Feld statisch ist und der zurückgegebene VarHandle-Wert ausgeführt wird, wird die deklarierende Klasse des Felds initialisiert, wenn es noch nicht initialisiert wurde.
Bestimmte Zugriffsmodi der zurückgegebenen VarHandle werden unter den folgenden Bedingungen nicht unterstützt: <ul<>li>, wenn das Feld deklariert finalwird, werden schreib-, atomische Aktualisierungs-, numerische Atomaktualisierungs- und bitweise Atomaktualisierungsmodi nicht unterstützt.
<li>, wenn der Feldtyp etwas anderes ist als byte, , short, , char, int, long, , floatoder double dann werden numerische Atomaktualisierungszugriffsmodi nicht unterstützt.
<li>, wenn der Feldtyp etwas anderes ist als boolean, , byte, short, charoder intlong dann bitweise Atomaktualisierungs-Zugriffsmodi werden nicht unterstützt.
</ul>
Wenn das Feld deklariert volatile wird, überschreibt varHandle den Zugriff auf das Feld (effektiv ignorieren die volatile Deklaration) gemäß den angegebenen Zugriffsmodi.
Wenn es sich bei dem Feldtyp float um numerische und atomische Zugriffsmodi handelt, double vergleichen Sie Werte mit der bitweisen Darstellung (siehe Float#floatToRawIntBits bzw Double#doubleToRawLongBits.
Hinzugefügt in 9.
Teile dieser Seite sind Änderungen auf der Grundlage von Arbeiten, die von der Android Open Source Project erstellt und gemeinsam verwendet und gemäß den in der 2.5 Attribution License beschriebenen Begriffen verwendet werden.