我想获取枚举类型的实例,以便:
String enumString="abc";
MyClass.MyEnum enumType=Class.forName("com.MyClass.MyEnum."+enumString);
这给了我一个不可思议的类型。
答案 0 :(得分:18)
Enum.valueOf会这样做,但它的类型非常挑剔。确保将Class
投射到Class<? extends Enum>
。例如:
enum Foo {
BLAT,
BLARG
};
System.out.println(Enum.valueOf((Class<? extends Enum>)Class.forName("Foo"), "BLARG"));
答案 1 :(得分:8)
答案 2 :(得分:7)
您正在寻找MyClass.MyEnum.valueOf(enumString)
。无需完全限定字符串中的类。