Sprache

MethodHandles.Lookup.UnreflectVarHandle(Field) Methode

Definition

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.

Java Dokumentation für java.lang.invoke.MethodHandles.Lookup.unreflectVarHandle(java.lang.reflect.Field).

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.

Gilt für: