Ответ
Будет выброшено непроверяемое исключение UnsupportedOperationException.
Пример:
List<String> originalList = new ArrayList<>(Arrays.asList("A", "B"));
List<String> unmodifiableList = Collections.unmodifiableList(originalList);
unmodifiableList.add("C"); // Выбросит UnsupportedOperationException
unmodifiableList.set(0, "Z"); // Выбросит UnsupportedOperationException
unmodifiableList.remove(0); // Выбросит UnsupportedOperationException
Как это работает:
- Методы типа
Collections.unmodifiableList(),List.of(),Set.copyOf()возвращают представление или специальную коллекцию, которая блокирует операции модификации. - Это runtime-защита, а не compile-time.
- Важно: Изменение исходной (обернутой) коллекции отразится на неизменяемом представлении.
originalList.add("C"); // Это сработает System.out.println(unmodifiableList); // Выведет: [A, B, C]Используйте такие коллекции для безопасной передачи данных без риска их изменения извне.