我希望编写一个通用类,可以像这样使用:new EnumConverter(MyEnum.class);
但是如何编写这个类,使其可以与对enum.values()
的泛型调用一起工作呢?
public class EnumConverter {
public EnumConverter(Class<Enum<?>> type) {
this.type = type;
}
public EnumConverter convert(String text) {
//error: Type mismatch: cannot convert from element type capture#1-of ? to Enum<?>
for (Enum<?> candidate : type.getDeclaringClass().getEnumConstants()) {
if (candidate.name().equalsIgnoreCase(text)) {
return candidate;
}
}
}
}
EnumConverter
,而candidate
的类型是Enum<?>
! - bachr