【发布时间】:2019-04-06 16:41:24
【问题描述】:
我想在一个枚举中存储不同的枚举类型。
这是正确(最短)的方式吗?
public enum MyEnums {
all(EnumSet.of(Color.red, Shape.round));
MyEnums(EnumSet<? extends Enum<?>> keys) {
this.keys = keys;
}
private final Set<? extends Enum<?>> keys;
public Set<? extends Enum<?>> getKeys() {
return keys;
}
}
【问题讨论】:
-
使用其他类型的集合。
-
为什么?我想,枚举集就在这里..
-
EnumSet 旨在仅保存一种枚举值。关键是它非常有效,因为它存储了当前序数值的位掩码。如果您有多个枚举类型,它无法区分来自具有相同序数的不同枚举的值。
-
哦,没注意到,谢谢!