相关疑难解决方法(0)

具有有界扩展枚举参数的通用方法 - 无法访问values()方法

我想写一个泛型方法,它采用扩展Enum的有界参数.例如,如果我有一个枚举如下:

public enum InputFlags{
    ONE (0000001),
    TWO (0000002),
    THREE (00000004);

    public final int value;

    InputFlags(int value){
        this.value = value;
    }
}
Run Code Online (Sandbox Code Playgroud)

然后我可以做以下事情:

for (InputFlags ifg : InputFlags.values()){
            // Do something with ifg
}
Run Code Online (Sandbox Code Playgroud)

但是,如果我尝试在返回参数有界的泛型方法中执行上述操作,则无法访问该values()方法:

public static <T extends Enum> T getFlags(int f){
        T.values(); // NOT allowed, even though I have bounded by extending Enum.
}
Run Code Online (Sandbox Code Playgroud)

好像我无法访问values()泛型方法.这是Enums的特点还是有办法解决这个问题?

java generics enums

5
推荐指数
2
解决办法
648
查看次数

标签 统计

enums ×1

generics ×1

java ×1