<分区>
我的问题很简单。
我有一个 java.lang.reflect.Type 类型的变量,如果它包含类或枚举,我想对它做两件不同的事情。我可以通过询问 .isEnum()
来相当简单地检查变量是否为枚举。但是,要调用特定的枚举方法,我需要将此变量转换为枚举。这是一些用于说明的代码。我知道它没有多大意义,但它只是为了 Actor 插图:
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);
但我无法让它工作。
有什么想法吗?