我需要类,我可以给出不同的枚举类型,在这个类中,我需要获得给定枚举的所有值。
这就是我试图做的,但是我有一个问题定义枚举字段的类型:
class MyClass{
private Class<T> enumType; //how to say who is T?
void <T extends Enum<T>> setEnumType(Class<T> enumType){
this.enumType = enumType;
}
void doSomething(){
for (Enum<T> literal : enumType.getEnumConstants()) {
// do something with literal.name();
}
}
}更新:我不能使类是通用的(MyClass<T extends Enum<T>>)。所以我需要其他解决办法。
发布于 2014-03-27 06:44:57
最后,我实现了以下解决方案:
class MyClass{
private Class<? extends Enum<?>> enumType;
void <T extends Enum<T>> setEnumType(Class<T> enumType){
this.enumType = enumType;
}
void doSomething(){
for (Enum<?> literal : enumType.getEnumConstants()) {
// do something with literal.name();
}
}}
发布于 2014-03-20 18:08:50
像这样的东西应该可以工作(但是我建议在构造函数中传递enum类):
class MyClass<T extends Enum<T>> {
private Class<T> enumType;
void setEnumType(Class<T> enumType){
this.enumType = enumType;
}
void doSomething(){
for (T literal : enumType.getEnumConstants()) {
// do something with literal.name();
}
}
}https://stackoverflow.com/questions/22541541
复制相似问题