나는 아주 간단한 문제가있다.
java.lang.reflect.Type 유형의 변수가 있고 클래스 또는 열거 형을 보유하고있는 경우이를 위해 두 가지 다른 작업을 수행하려고합니다. 간단하게 .isEnum()
을 묻는 것으로 확인할 수 있습니다. 그러나 특정 열거 메서드를 호출하려면이 변수를 열거 형으로 캐스팅해야합니다. 다음은 일러스트레이션을위한 코드입니다. 나는 그것이 sence의 많은하지 않습니다 알고 있지만 단지 캐스트 그림에 대한이 : 나는java.lang.reflect.Type을 enum으로 캐스트하는 방법은 무엇입니까?
(java.lang.Enum myVar).valueOf(enumString);
또는
(java.lang.Enum<?> myVar).valueOf(enumString);
처럼 캐스트를 시도
public class TestClass {
public static String text = "MySampleTextClass.";
}
public enum TestEnum {
MySampleText
}
public class Tester {
public static Object retrieveValue (java.lang.reflect.Type myVar, String enumStringValue) {
String enumStringValue = "MySampleText";
// the variable is enum!!!
if (myVar.isEnum()) {
return (Enum myVar).valueOf(enumStringValue);
}
// the variable is class!!!
else {
return myVar.getClass().getSimpleName();
}
}
}
하지만 그럴 수 없어 작동하게 만들다.
아이디어가 있으십니까?
'Type'에는 isEnum 메소드가 없습니다. 'Class'를 사용하는 것이 더 간단하지 않습니까? – Pshemo