Im Allgemeinen ist ein Variablenhandle nur ein typisierter Verweis auf eine Variable. Es wird ein Array-Element, eine Instanz oder ein statischesFeld der Klasse sein. Die Klasse VarHandle kann unter bestimmten Bedingungen Schreib- und Lesezugriff auf Variablen bereitstellen. Sie sind unveränderlich und haben keine sichtbaren Bedingungen. Darüber hinaus können sie nicht unterteilt werden, da jedes VarHandle einen generischen Typ T hat, der der Typ jeder Variablen ist, die durch dieses VarHandle dargestellt wird. Das Ziel von VarHandle ist es, einen Standard für den Aufruf der Äquivalente von java.util.concurrent.atomic und sun.misc.Unsafe Operationen auf Feldern und Array-Elementen zu definieren.
Im folgenden Beispiel können wir eineVarHandle-Instanz mit der Methode MethodHandle.lookup() erstellen. Beispiel
import java.lang.invoke.VarHandle; import java.lang.invoke.MethodHandles; public class VarHandleInstanceTest { public static void main(String args[]) { try { <strong>VarHandle </strong>fieldHandle = <strong>MethodHandles.lookup().in</strong>(Student.class).<strong>findVarHandle</strong>(Student.class, "<strong>studentId</strong>", int.class); System.out.println("VarHandle instance created successfully!!!"); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } } <strong>// Stundent class</strong> class Student { protected int studentId; private String[] marks; public Student() { studentId = 0 ; marks = new String[] {"75" , "85" , "95"} ; } }
<strong>VarHandle instance created successfully!!!</strong>
Das obige ist der detaillierte Inhalt vonWie erstellen wir eine Instanz von VarHandle in Java 9?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!