Создание неизменяемых списков
Создание неизменяемых списков одним чистым выражением.
Сравнение кода
✕ Java 8
List<String> list =
Collections.unmodifiableList(
new ArrayList<>(
Arrays.asList("a", "b", "c")
)
);
✓ Java 9+
List<String> list =
List.of("a", "b", "c");
Заметили проблему в этом коде? Сообщите нам.
Почему современный подход лучше
Один вызов
Заменить три вложенных вызова одним фабричным методом.
По-настоящему неизменяемый
Не просто обёртка — сам список неизменяем.
Безопасен для null
Отклоняет null-элементы при создании и немедленно завершается с ошибкой.
Старый подход
Многословное обёртывание
Современный подход
List.of()
Начиная с JDK
9
Сложность
Начинающий
Поддержка JDK
Создание неизменяемых списков
Доступно
Широко доступно начиная с JDK 9 (сент. 2017)
Как это работает
List.of() создаёт по-настоящему неизменяемый список — без обёртывания и защитного копирования. Не допускает null-элементов и структурно неизменяем. Старый подход требовал трёх вложенных вызовов.
Связанная документация
Доказательство