我知道问题是关于
List
的,但我认为我有可能更简洁的解决方案,以及一个尚未添加的使用
List
的解决方案。
我正在使用
Java 17
简单地使用一个
enum
数组即可。
public class Main {
static public enum Something {
One,
Two,
Three,
Four,
Five,
;
}
public static void main(String[] args) {
Something[] somethings = Something.values();
for (Something something: somethings) {
System.out.printf("- %s\n", something);
}
}
}
使用
enum.values()
来获取枚举的所有值。
Something[] somethings = Something.values();
使用
list.of
。
import java.util.List;
public class Main {
static public enum Something {
One,
Two,
Three,
Four,
Five,
;
}
public static void main(String[] args) {
List<Something> somethings2 = List.of(Something.values());
for (Something something: somethings2) {
System.out.printf("- %s\n", something);
}
}
}
我看到过使用
Arrays.asList()
的解决方案,正如
什么是List.of和Arrays.asList之间的区别?中所描述的。
Arrays.asList
返回一个可变列表,而List.of
返回的列表是不可变的
或者
Arrays.asList
允许包含空元素,而List.of
不允许
还有其他一些原因。
因为从一个
enum
数组理论上来说,你不应该能够改变它(添加/删除元素),所以我认为使用
List.of
更有意义。
不管怎样,这取决于具体的使用情况,两种方法都可能有效。