我有一个包含30个值的枚举,我需要将每个值放入列表中。有没有办法循环每一个并添加它们与30行代码添加每一个?枚举名称是学校,我尝试做类似
的事情 List<School> schools = new ArrayList<School>();
schools.add(School.values());
和
List<School> schools = new ArrayList<School>();
schools.addAll(School.values());
答案 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()
方法的文档
返回由指定数组支持的固定大小的列表。
如果您创建建议的方式,则可以向其添加更多元素。