Computer >> 컴퓨터 >  >> 프로그램 작성 >> Java

Java 9에서 VarHandle의 인스턴스를 어떻게 만들 수 있습니까?


일반적으로 가변 핸들 변수에 대한 단순히 형식화된 참조입니다. 배열 이 됩니다. 요소, 인스턴스 또는 정적 필드 클래스의. 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!!!