Встречается на собеседованиях • сегодня

Достаточно ли использовать static final, чтобы сделать объект неизменяемым

Нет, `static final` гарантирует только неизменяемость ссылки, но не содержимого объекта. Для создания неизменяемого объекта нужно: 1. Сделать класс `final`, чтобы запретить наследование 2. Сделать все поля `private final` 3. Не предоставлять сеттеров 4. Защитить изменяемые поля (коллекции, массивы) через защитное копирование Пример: ```java public final class ImmutablePerson { private final String name; private final List hobbies; public ImmutablePerson(String name, List hobbies) { this.name = name; this.hobbies = Collections.unmodifiableList(new ArrayList<>(hobbies)); } public List getHobbies() { return Collections.unmodifiableList(hobbies); } } ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы