ConstantBootstraps — 동적으로 계산되는 상수를 위한 부트스트랩 메서드들

ConstantBootstraps — 동적으로 계산되는 상수를 위한 부트스트랩 메서드들

ConstantBootstraps동적으로 계산되는 상수(dynamically-computed constants) 를 위한 부트스트랩 메서드를 제공하는 클래스예요. 자바 11의 condy(constant dynamic) 기능과 짝을 이루며, invokedynamic과 유사한 방식으로 상수를 동적으로 생성해요.

출처: Java API Reference

본문

이 클래스의 부트스트랩 메서드는 참조 인자에 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을 찾아요.

더 알아보기 (Learn more)