У меня есть перечисление с 30 значениями, и мне нужно поместить каждый в список. Есть ли способ перебрать каждый из них и добавить их против 30 строк кода, добавляющих каждый из них? Имя перечисления - это школа, и я попытался сделать что-то вроде
List<School> schools = new ArrayList<School>();
schools.add(School.values());
а также
List<School> schools = new ArrayList<School>();
schools.addAll(School.values());
Создайте свой список, как
List<School> schools = new ArrayList<School>(Arrays.asList(School.values()));
Если вы используете Arrays.asList(School.values())
, вы не сможете добавить что-нибудь в этот список позже, и в итоге вы получите исключение. Из документов метода asList()
Возвращает список фиксированного размера, поддерживаемый указанным массивом.
Если вы создадите предложенный способ, вы сможете добавить к нему дополнительные элементы.
enum#values
возвращает массив. Вместо этого используйте Arrays.asList
:
schools.add(Arrays.asList(School.values()));
Или однострочный:
List<School> schools = Arrays.asList(School.values());
schools
.
List<YourEnum>
поэтому однострочного подхода на этот раз будет достаточно.