首页 文章资讯内容详情

在Java中9如何创建静态VarHandle?

2026-06-04 1 花语

VarHandle 是对变量的引用,它提供了在各种访问模式(例如plain读/写,volatile读/写,比较和交换)下对变量的访问,类似于java.util.concurrent提供的功能。.atomic sun.misc.Unsafe。变量可以是数组元素、实例或类中的静态字段。

在下面的示例中,我们可以创建一个静态变量句柄。

示例

import java.lang.invoke.MethodHandles; import java.lang.invoke.VarHandle; public class StaticVarHandleTest { static int field; static int[] array = new int[20]; static final VarHandle FIELD, ARRAY; static { try { FIELD = MethodHandles.lookup().in(StaticVarHandleTest.class).findStaticVarHandle(StaticVarHandleTest.class, "field", Integer.TYPE); ARRAY = MethodHandles.arrayElementVarHandle(int[].class); } catch(Exception e) { throw new InternalError(e); } } public static void main(String args[]) throws Exception { int i = (int)FIELD.getVolatile(); System.out.println(i); FIELD.getAndAdd(5); System.out.println(field); System.out.println(ARRAY.getAndAdd(array, 5, 5)); System.out.println(ARRAY.getAndAdd(array, 5, 5)); } }

输出结果

0 5 0 5