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,我想我被我的泛型类型参数弄糊涂了。它确实有效。