首页 文章资讯内容详情

我们如何在Java 9中创建VarHandle的实例?

2026-06-04 1 花语

通常,变量句柄只是简单地键入对变量的引用。这将是数组元素,类的实例静态字段VarHandle类可以在特定条件下提供对变量的写和读访问。这些是不可变的,没有可见的条件。另外,它们不能被子分类,并且每个VarHandle都有一个通用类型T,这是此VarHandle表示的每个变量的类型。VarHandle的目的是定义一个标准,用于调用java.util.concurrent.atomic的等效项和sun.misc。对字段和数组元素的不安全操作。

在下面的示例中,我们可以使用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 classclass Student { protected int studentId; private String[] marks; public Student() { studentId = 0 ; marks = new String[] {"75" , "85" , "95"} ; } }

输出结果

VarHandle instance created successfully!!!