일반적으로 가변 핸들 변수에 대한 단순히 형식화된 참조입니다. 배열 이 됩니다. 요소, 인스턴스 또는 정적 필드 클래스의. VarHandle 클래스는 특정 조건에서 변수에 대한 쓰기 및 읽기 액세스를 제공할 수 있습니다. 이는 불변입니다. 그리고 눈에 보이는 상태가 없습니다. 또한 하위 분류할 수 없으며 각 VarHandle 일반 유형이 있습니다. 티 이 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!!!