В данной статье рассмотрим новую фичу JDK 9 - создание неизменяемых коллекций. До Java9, если мы хотели получить неизменяемые коллекции - необходимо было вызвать unmodifiableXXX(); методы у java.util.Collections. Например, чтобы создать неизменяемый список, необходимо выполнить:
При попытки добавлении новой записи "Smart_1" - получаем ошибку:List<Strong> immutablelist = Collections.unmodifiableList(new ArrayList<String>(){{ add("Smart"); add("Techie"); }}); immutablelist.add("Smart_1");
java.lang.UnsupportedOperationException thrown: at Collections$UnmodifiableCollection.add (Collections.java:1056)
Код выше - слегка многословен, чтобы создать немодифицированный список. Т.к. Java адоптирует функциональный стиль в Java 9 разработаны удобные, более компактные фабричные методы для создания немодифицируемых коллекций, как указано в JEP 269. Рассмотрим как это работает:
//Пустой список List immutableList = List.of(); // Не пустой список immutableList = List.of("Smart","Techie"); // Не пустая Map Map immutableMap = Map.of(1,"Smart",2,"Techie");
Если вы посмотрите на вышеупомянутый фабричный метод Java 9, код представляет собой простой однострочный набор для создания неизменяемых коллекций
PS это мой перевод данной стать.
Комментариев нет :
Отправить комментарий