/
DevDenzo
/
java-immutable-app
Обзор
Документация
Войти
/
DevDenzo
/
java-immutable-app
Код
Запросы
0
Задачи
Вики
Пакеты
0
Релизы
0
CI/CD
Аналитика
Безопасность
master
src/ImmutableWrapper.java
35 строк
2 KB
Denis Sklyarskij
task-done
09 дек 2025, 18:20
09 дек 2025, 18:20
85554a9
Код
Авторство
О чём код?
import java.util.ArrayList; import java.util.Collections; import java.util.List; public class ImmutableWrapper { private final MutableData mutableData; /* С помощью контрсуктора создаем защищенную копию объекта */ public ImmutableWrapper(MutableData original) { if (original == null) { throw new IllegalArgumentException("исходный объект не может быть равен null"); } /* Создаем защищенную копию: извлекаем данные и оборачиваем в неизменяемый список */ List<String> safeItems = new ArrayList<>(original.getItems()); this.mutableData = new MutableData(Collections.unmodifiableList(safeItems)); } /* Безопасный геттер: возвращает неизменяемую копию списка */ public List<String> getItems() { return Collections.unmodifiableList(mutableData.getItems()); } /* Возвращаем защищенную версию полного объекта */ public MutableData getMutableData() { /* Возвращаем новый объект mutableData с неизменяемым списком */ List<String> currentItems = new ArrayList<>(mutableData.getItems()); return new MutableData(Collections.unmodifiableList(currentItems)); } @Override public String toString() { return "ImmutableWrapper{mutableData=" + getMutableData() + "}"; } }