
ReflectionEnum::getBackingType은 Enum의 원시 타입을 반환하는 메서드입니다.
원시 타입이란 Enum의 실제 값을 저장하는 데이터 타입을 의미합니다. 예를 들어, Enum Color에 RED, GREEN, BLUE가 정의되어 있다면 원시 타입은 int가 됩니다.
반환 타입은 Class 형태로 반환됩니다. 여기서 T는 원시 타입의 클래스 타입을 의미합니다.
예를 들어, Enum Color의 원시 타입은 int이므로 getBackingType의 반환 타입은 Class가 됩니다.
이 값을 사용하려면 Class의 newInstance() 메서드를 사용하여 원시 타입의 객체를 생성할 수 있습니다.
예를 들어, Color의 원시 타입은 int이므로 getBackingType의 반환 타입은 Class가 됩니다. 이 값을 사용하여 int 타입의 객체를 생성하려면 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
java
Class clazz = Color.class.getEnumConstants()[0].getBackingType();
Integer value = clazz.newInstance();
하지만, 위의 코드는 Java 9 이상에서만 사용할 수 있습니다. Java 8 미만에서는 newInstance() 메서드가 deprecated되어 사용할 수 없습니다.
Java 8 미만에서는 Enum의 원시 타입을 얻기 위해 다음과 같이 사용할 수 있습니다.
#hostingforum.kr
java
Class clazz = Color.class.getEnumConstants()[0].getBackingType();
Integer value = clazz.cast(Color.class.getEnumConstants()[0].ordinal());
위의 코드는 Enum의 원시 타입을 얻기 위해 ordinal() 메서드를 사용합니다. ordinal() 메서드는 Enum의 순서를 반환합니다.
이 값을 사용하여 원시 타입의 객체를 생성할 수 있습니다.
위의 코드는 Java 8 미만에서 Enum의 원시 타입을 얻기 위해 사용할 수 있습니다.
2025-07-05 00:00