当我没有通用枚举的运行时类型时,如何创建空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;
}
答案 0 :(得分:6)
EnumSet.noneOf()
应该做你需要的。您的代码收到Class<T>
作为构造函数参数,因此您需要将其存储在字段中。