Att*_*zki 0 java generics wildcard
鉴于以下课程:
...
Class<? extends Enum<?>> enumType;
public MyClass(Class<? extends Enum<?>> enumType) {
super();
this.enumType=enumType;
...
Run Code Online (Sandbox Code Playgroud)
如何定义返回"enumType"类的枚举的方法?
我需要这样的东西:
public enumType getValue(){
...
}
Run Code Online (Sandbox Code Playgroud)
,但这不起作用..
使用类型参数而不是通配符.例如:
class MyClass<T extends Enum<T>> {
private Class<T> enumType;
public MyClass(Class<T> enumType) {
this.enumType = enumType;
}
public T getValue() {
// ...
}
}
Run Code Online (Sandbox Code Playgroud)
编辑为了回应你的评论,这里有一个列出任意常量的常量的方法enum:
public <E extends Enum<E>> void showEnumValues(Class<E> e) {
for (E value : e.getEnumConstants())
System.out.println(value);
}
}
Run Code Online (Sandbox Code Playgroud)