Nói chung, Xử lý biến chỉ đơn giản là tham chiếu được nhập vào một biến. Nó sẽ là một mảng phần tử, một trường hợp hoặc tĩnh trường của lớp. VarHandle lớp có thể cung cấp quyền ghi và đọc cho các biến trong các điều kiện cụ thể. Đây là bất biến và không có điều kiện nhìn thấy. Ngoài ra, chúng không thể được phân loại phụ và mỗi VarHandle có loại chung chung T , là loại của mỗi biến được đại diện bởi VarHandle này . Mục tiêu của VarHandle là xác định một tiêu chuẩn để gọi các ứng dụng tương đương của java.util.concurrent.atomic và sun.misc.Unsafe hoạt động trên các trường và phần tử mảng.
Trong ví dụ dưới đây, chúng ta có thể sử dụng MethodHandle.lookup () để tạo VarHandle ví dụ.
Ví dụ
import java.lang.invoke.VarHandle; import java.lang.invoke.MethodHandles; public class VarHandleInstanceTest { public static void main(String args[]) { try { VarHandle fieldHandle = MethodHandles.lookup().in(Student.class).findVarHandle(Student.class, "studentId", int.class); System.out.println("VarHandle instance created successfully!!!"); } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); } } } // Stundent class class Student { protected int studentId; private String[] marks; public Student() { studentId = 0 ; marks = new String[] {"75" , "85" , "95"} ; } }
Đầu ra
VarHandle instance created successfully!!!