是否可以循环枚举以将每个项目添加到java中的列表?

时间:2014-08-07 14:58:55

标签: java list enums

我有一个包含30个值的枚举,我需要将每个值放入列表中。有没有办法循环每一个并添加它们与30行代码添加每一个?枚举名称是学校,我尝试做类似

的事情
 List<School> schools = new ArrayList<School>();
 schools.add(School.values());

List<School> schools = new ArrayList<School>();
 schools.addAll(School.values());

2 个答案:

答案 0 :(得分:1)

enum#values返回一个数组。请改用Arrays.asList

schools.add(Arrays.asList(School.values()));

或单行:

List<School> schools = Arrays.asList(School.values());

答案 1 :(得分:1)

一样创建列表
List<School> schools = new ArrayList<School>(Arrays.asList(School.values()));

如果您使用Arrays.asList(School.values()),则以后无法向该列表添加任何内容,最终会出现异常。来自asList()方法的文档

  

返回由指定数组支持的固定大小的列表。

如果您创建建议的方式,则可以向其添加更多元素。