如何在 Java 9 中创建 VarHandle 的实例?
一般来说,变量句柄仅仅是变量的一个类型化引用。它将成为数组元素、类中的实例或静态字段。VarHandle 类可以在特定条件下提供对变量的读写访问。这些是不可变的,并且没有可见的条件。此外,它们不能进行子分类,并且每个 VarHandle 都有一个泛型类型 T,这是此 VarHandle 所表示的每个变量的类型。VarHandle 的目标是定义一个标准,以便在字段和数组元素上调用 java.util.concurrent.atomic 和 sun.misc.Unsafe 操作的等效项。
在下例中,我们可使用 MethodHandle.lookup() 方法创建 VarHandle 实例。
示例
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"} ;
}
}输出
VarHandle instance created successfully!!!
广告
数据结构
网络
关系数据库管理系统
操作系统
Java
iOS
HTML
CSS
Android
Python
C 编程
C++
C#
MongoDB
MySQL
Javascript
PHP