Secara amnya, pemegang pembolehubah hanyalah rujukan bertaip kepada pembolehubah. Ia akan menjadi elemen array, instance atau statikmedan kelas. Kelas VarHandle boleh menyediakan akses tulis dan baca kepada pembolehubah di bawah keadaan tertentu. Mereka tidak berubah dan tidak mempunyai keadaan yang boleh dilihat. Selain itu, ia tidak boleh dibahagikan, setiap VarHandle mempunyai jenis generik T, iaitu jenis setiap pembolehubah yang diwakili oleh VarHandle ini. Matlamat VarHandle adalah untuk mentakrifkan standard untuk memanggil yang setara dengan operasi java.util.concurrent.atomic dan sun.misc.Unsafe pada medan dan elemen tatasusunan.
Dalam contoh di bawah, kita boleh mencipta contoh VarHandle menggunakan kaedah MethodHandle.lookup().
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>
Atas ialah kandungan terperinci Bagaimanakah kita membuat contoh VarHandle dalam Java 9?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!