
一般来说,变量句柄只是对变量的类型化引用。它将是类的一个数组元素、一个实例或静态字段。 VarHandle类可以提供特定条件下对变量的写和读访问。它们是不可变的并且没有可见的条件。另外,它们不能再细分,每个VarHandle都有一个泛型类型T,它是代表的每个变量的类型通过这个VarHandle。 VarHandle的目标是定义一个标准,用于调用字段上java.util.concurrent.atomic和sun.misc.Unsafe操作的等效项和数组元素。
”扩展PHP“说起来容易做起来难。PHP已经进化成一个日趋成熟的源码包几十兆大小的工具。要骇客如此复杂的一个系统,不得不学习和思考。构建本章内容时,我们最终选择了“在实战中学习”的方式。这不是最科学也不是最专业的方式,但是此方式最有趣,也得出了最好的最终结果。下面的部分,你将先快速的学习到,如何获得最基本的扩展,且这些扩展立即就可运行。然后你将学习到 Zend 的高级 API 功能,这种方式将不得
在下面的示例中,我们可以使用 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!!!










