Встречается на собеседованиях • сегодня
Каким правилом необходимо следовать при реализации иммутабельного класса
1. **Не предоставлять сеттеры** – поля должны быть final и инициализироваться только в конструкторе.
2. **Запретить наследование** – класс лучше сделать 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 String getName() { return name; }
public List getHobbies() { return hobbies; }
}
```

Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы