java - 创建通用类型的枚举集

标签 java generics enums

如何创建一个空的 EnumSet当我没有通用枚举的运行时类型时?示例代码:

public class Utility<T extends Enum<T>> {
    private T[] enumConstants;
    public Utility(Class<T> e) {
        enumConstants = e.getEnumConstants();
    }
    private EnumSet<T> emptyEnumSet() {
        // ?
    }
}

这是我目前的解决方法,我认为它有点笨拙:

private EnumSet<T> emptyEnumSet() {
    T first = enumConstants[0];
    EnumSet<T> result = EnumSet.of(first);
    result.remove(first);
    return result;
}

最佳答案

EnumSet.noneOf()应该做你需要的。您的代码收到 Class<T>作为构造函数参数,因此您需要将其存储在一个字段中。

关于java - 创建通用类型的枚举集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35009430/

相关文章:

java - 根据 Android API 级别包含外部库

c# - 用于保存不同类型列表的泛型设计模式

c++ - 通用调度程序类

java - 这是确定 Java 通配符 <?> referee 的运行时类型的最佳实践示例

c# - 如何在 const 字符串中包含枚举值?

c# - Enum.GetValues() 的内部工作

java - Spring MVC Controller 事务

java - 如何将jsp select标签中的值存储到input标签中

java - 设置方法的状态

java - 如何将状态保存到文件并保证文件安全?