ConstantBootstraps — 동적으로 계산되는 상수를 위한 부트스트랩 메서드들
ConstantBootstraps — 동적으로 계산되는 상수를 위한 부트스트랩 메서드들
ConstantBootstraps는 동적으로 계산되는 상수(dynamically-computed constants) 를 위한 부트스트랩 메서드를 제공하는 클래스예요. 자바 11의 condy(constant dynamic) 기능과 짝을 이루며, invokedynamic과 유사한 방식으로 상수를 동적으로 생성해요.
본문
이 클래스의 부트스트랩 메서드는 참조 인자에 null이 들어오면 NullPointerException을 던져요. 단, 그 인자가 "사용되지 않음(unused)"으로 명시되거나 null 값을 받도록 지정된 경우는 예외예요.
final 클래스로, static 메서드만 모여 있어요.
주요 static 메서드
static VarHandle arrayVarHandle(Lookup lookup, String name, Class<VarHandle> type, Class<?> arrayClass)— 배열 타입을 위한VarHandle을 찾아요.static <E extends Enum<E>> E enumConstant(Lookup lookup, String name, Class<E> type)—type이 지정하는 타입의,name이라는 이름의 enum 상수를 반환해요.static Object explicitCast(Lookup lookup, String name, Class<?> dstType, Object value)— 소스 타입에서 목적지 타입으로의 변환을 적용해요.static VarHandle fieldVarHandle(Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)— 인스턴스 필드를 위한VarHandle을 찾아요.static Object getStaticFinal(Lookup lookup, String name, Class<?> type)— 필드 타입과 같은 클래스(원시 값 필드는 래퍼 클래스)에 선언된 static final 필드의 값을 반환해요.static Object getStaticFinal(Lookup lookup, String name, Class<?> type, Class<?> declaringClass)— static final 필드의 값을 반환해요.static Object invoke(Lookup lookup, String name, Class<?> type, MethodHandle handle, Object... args)— 주어진 인자로 메서드 핸들을 호출한 결과를 반환해요.static Object nullConstant(Lookup lookup, String name, Class<?> type)—type이 지정하는 참조 타입에 대한 null 객체 참조를 반환해요.static Class<?> primitiveClass(Lookup lookup, String name, Class<?> type)—name이 지정하는 타입 설명자를 가진 원시 타입의Class미러를 반환해요.static VarHandle staticFieldVarHandle(Lookup lookup, String name, Class<VarHandle> type, Class<?> declaringClass, Class<?> fieldType)— static 필드를 위한VarHandle을 찾아요.