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

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

Нет, этого недостаточно. Для полной неизменяемости нужно: 1. Сделать все поля `final` (чтобы они инициализировались только в конструкторе) 2. Защитить от изменений mutable-поля (например, коллекции или массивы): - Возвращать копии или неизменяемые обёртки - Не хранить ссылки на внешние mutable-объекты Пример: ```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 hobbies; // безопасно, так как список неизменяемый } } ```
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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