gpt4 book ai didi

java - 在 enumSet 中存储不同的枚举类型

转载 作者:行者123 更新时间:2023-12-01 17:45:43 28 4
gpt4 key购买 nike

我想在一个枚举中存储不同的枚举类型。

这是正确(最短)的方法吗?

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;
}
}

最佳答案

使用不同类型的集合。枚举集是 designed to hold enum values of a single kind only :

All of the elements in an enum set must come from a single enum type

重点是它非常高效,因为它存储当前序数值的位掩码 - 大多数枚举的值少于 64 个,因此它在成员变量方面基本上需要的是 Class 和一个long。 (EnumSet 有一个私有(private)子类,称为 JumboEnumSet,它可以处理更大的枚举)。

如果您有多个枚举类型,它无法区分具有相同序数的不同枚举的值。

关于java - 在 enumSet 中存储不同的枚举类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55551199/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com