ProgramingTip

클래스가 java.lang.Enum인지 확인

bestdevel 2020. 11. 30. 19:25
반응형

클래스가 java.lang.Enum인지 확인


클래스가 Enum 알고 싶지만 뭔가 빠진 것입니다.

if (test.MyEnum.class instanceof Enum<?>.class)
 obj = resultWrapper.getEnum(i, test.MyEnum.class);
else 
 obj = resultWrapper.getObject(i);

Enum.class가 유효하지 않다는 오류가 발생합니다. 어디에서 확인할 수 있습니까? 나는 그것을 확신 할 수 있다고 확신합니다. 나는 그것을 얻을 수 없습니다.

감사합니다


올바른 구문은 다음과 가변합니다.

Enum.class.isAssignableFrom(test.MyEnum.class)

그러나 열거 형의 경우 더 편리한 방법이 있습니다.

if (someObject.getClass().isEnum()))

업데이트 : 본문이있는 열거 형 항목 (예 : 메서드 재정의)의 경우 실제로 작동하지 않습니다. 이 경우

if (someObject instanceof Enum<?>)

참고 :


Java 5의 새로운 기능에 대해 이야기하고 있습니다. enum(실제로는 새로운 기능 이 아닙니다) 다음과 같은 방법으로 갈 수 있습니다.

if (obj.getClass().isEnum()) {

...
}

Enum정의 클래스 인 user- 경우 obj instanceof Enum.

참고 URL : https://stackoverflow.com/questions/4166488/checking-if-a-class-is-java-lang-enum

반응형