我有一个像这样的枚举
:
public enum SomeEnum
{
ENUM_VALUE1("Some value1"),
ENUM_VALUE2("Some value2"),
ENUM_VALUE3("Some value3");
}
我需要将 enum
Some value1、Some value2 和 Some value3 的值存储在一个 数组列表
。
我可以使用 SomeEnum.values()
获取数组中的所有值并遍历该数组并将值存储在 ArrayList
中,如下所示:
SomeEnum values[] = SomeEnum.values();
ArrayList<SomeEnum> someEnumArrayList = new ArrayList<SomeEnum>();
for(SomeEnum value:values)
{
someEnumArrayList.add(value.getValue());
}
是否有任何其他方法像 values()
返回 Some value1、Some value2 和 Some 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/