Java 创建泛型类型的枚举集

Java 创建泛型类型的枚举集,java,generics,enums,Java,Generics,Enums,当我没有泛型枚举的运行时类型时,如何创建空枚举?示例代码: public class Utility<T extends Enum<T>> { private T[] enumConstants; public Utility(Class<T> e) { enumConstants = e.getEnumConstants(); } private EnumSet<T> emptyEnumSet()

当我没有泛型枚举的运行时类型时,如何创建空枚举?示例代码:

public class Utility<T extends Enum<T>> {
    private T[] enumConstants;
    public Utility(Class<T> e) {
        enumConstants = e.getEnumConstants();
    }
    private EnumSet<T> emptyEnumSet() {
        // ?
    }
}
公共类实用程序{
私有T[]枚举常数;
公用事业(e类){
enumConstants=e.getEnumConstants();
}
私有枚举集emptyEnumSet(){
// ?
}
}
以下是我目前的解决方法,我认为它有点笨拙:

private EnumSet<T> emptyEnumSet() {
    T first = enumConstants[0];
    EnumSet<T> result = EnumSet.of(first);
    result.remove(first);
    return result;
}
私有枚举集emptyEnumSet(){
T first=枚举常数[0];
EnumSet result=EnumSet.of(第一个);
结果:移除(第一个);
返回结果;
}

EnumSet.noneOf()
应该满足您的需要。您的代码将
作为构造函数参数接收,因此您需要将其存储在字段中。

Ooh,我想我被我的泛型类型参数弄糊涂了。它确实有效。