Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Cách tạo instance VarHandle trong Java 9?

Nói chung, Variable Handle đơn giản là typed reference đến biến. Nó là array element, instance hoặc static field của class. Lớp VarHandle cung cấp truy cập ghi và đọc biến dưới điều kiện cụ thể. Chúng immutable và không có điều kiện nhìn thấy. Ngoài ra, không thể sub-class, và mỗi VarHandle có generic type T, là kiểu của mỗi biến được đại diện bởi VarHandle này. Mục tiêu của VarHandle là định nghĩa chuẩn gọi equivalent của operation java.util.concurrent.atomic và sun.misc.Unsafe trên field và array element.

Ví dụ dưới dùng MethodHandle.lookup() tạo instance VarHandle.

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();
        }
    }
}

// Student class
class Student {
    protected int studentId;
    private String[] marks;
    public Student() {
        studentId = 0;
        marks = new String[] {"75", "85", "95"};
    }
}

Kết quả

VarHandle instance created successfully!!!