gpt4 book ai didi

java - 如何在数组列表中存储枚举的值?

转载 作者:搜寻专家 更新时间:2023-10-30 21:22:07 24 4
gpt4 key购买 nike

我有一个像这样的枚举:

public enum SomeEnum 
{
ENUM_VALUE1("Some value1"),
ENUM_VALUE2("Some value2"),
ENUM_VALUE3("Some value3");
}

我需要将 enum Some value1Some value2Some value3 的值存储在一个 数组列表

我可以使用 SomeEnum.values() 获取数组中的所有值并遍历该数组并将值存储在 ArrayList 中,如下所示:

SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values)
{
someEnumArrayList.add(value.getValue());
}

是否有任何其他方法像 values() 返回 Some value1Some value2Some value3 ?

最佳答案

您可以像这样在 enum 本身中构建该列表:

public enum SomeEnum {

ENUM_VALUE1("Some value1"),
ENUM_VALUE2("Some value2"),
ENUM_VALUE3("Some value3");

private static final List<String> VALUES;

private final String value;

static {
VALUES = new ArrayList<>();
for (SomeEnum someEnum : SomeEnum.values()) {
VALUES.add(someEnum.value);
}
}

private SomeEnum(String value) {
this.value = value;
}

public static List<String> getValues() {
return Collections.unmodifiableList(VALUES);
}

}

然后您可以通过以下方式访问此列表:

List<String> values = SomeEnum.getValues();

关于java - 如何在数组列表中存储枚举的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32089114/

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