我有一個相當簡單的問題。
我有一個java.lang.reflect.Type類型的變量,我想對它做兩件不同的事情,以防它保留類或枚舉。我可以簡單地通過簡單地詢問.isEnum()
來檢查變量是否爲enum。然而,爲了調用特定的枚舉方法,我需要將這個變量賦值爲枚舉。這裏有一些用於說明的代碼。我知道這不會使SENCE的多,但它只是投插圖:如何將java.lang.reflect.Type轉換爲枚舉?
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();
}
}
}
我試着像
(java.lang.Enum myVar).valueOf(enumString);
或
(java.lang.Enum<?> myVar).valueOf(enumString);
石膏,但我不能讓它起作用。
任何想法?
'Type'沒有'isEnum'方法。使用'Class'不是更簡單嗎? – Pshemo