给定以下类别:
...
Class<? extends Enum<?>> enumType;
public MyClass(Class<? extends Enum<?>> enumType) {
super();
this.enumType=enumType;
...
如何定义返回“ enumType”类的枚举的方法?
我需要类似的东西:
public enumType getValue(){
...
}
,但这不起作用..
最佳答案
使用类型参数而不是通配符。例如:
class MyClass<T extends Enum<T>> {
private Class<T> enumType;
public MyClass(Class<T> enumType) {
this.enumType = enumType;
}
public T getValue() {
// ...
}
}
编辑根据您的评论,这是一种列出任意
enum
的所有常量的方法:public <E extends Enum<E>> void showEnumValues(Class<E> e) {
for (E value : e.getEnumConstants())
System.out.println(value);
}
}