我想编写一个通用的方法,接受一个绑定了范围的参数,该参数扩展自Enum。举个例子,如果有以下枚举:
public enum InputFlags{
ONE (0000001),
TWO (0000002),
THREE (00000004);
public final int value;
InputFlags(int value){
this.value = value;
}
}
我可以接下来做以下事情:
for (InputFlags ifg : InputFlags.values()){
// Do something with ifg
}
然而,如果我尝试使用一个具有边界返回参数的通用方法来执行上述操作,我将无法访问
values()
方法:public static <T extends Enum> T getFlags(int f){
T.values(); // NOT allowed, even though I have bounded by extending Enum.
}
看起来我无法在通用方法中访问values()
。这是枚举的特殊性还是有其他解决方法?
EnumSet
。 - Holger