我想解决与动态枚举查找有关的编译错误(“Bound mismatch:...”)。Enum.valueOf(类<T>枚举类型,字符串名称)问题
基本上我想要实现这样的事情:
String enumName = whatever.getEnumName();
Class<? extends Enum<?>> enumClass = whatever.getEnumClass();
Enum<?> enumValue = Enum.valueOf(enumClass, enumName);
无论我做什么,我总是与编译错误告终。老实说,仿制药和枚举是相当mindboggling我...
我在做什么错在这里?
的问题是关于枚举,泛型和反思。如果忽略泛型,这有什么意义?特别是像“Class <?extends Enum”这样的“稀有类型”。 – 2010-10-25 12:28:04
问题是a)如果没有辅助方法或类型,它就无法工作,b)我们确信任何'类<?扩展枚举>'也将满足'Class>'(因为这就是枚举类的工作方式),即使没有办法检查没有类型变量。 '@ SuppressWarnings'是一个注释,只有在你知道自己在做什么时才应该使用,而且我知道。 –
2010-10-25 12:43:08