Встречается на собеседованиях • сегодня
Как сделать класс иммутабельным
1. Объяви класс как `final`, чтобы предотвратить наследование.
2. Сделай все поля `private` и `final`, чтобы их нельзя было изменить после инициализации.
3. Не предоставляй сеттеры (setter methods).
4. Если класс содержит mutable объекты (например, коллекции), возвращай их копии в геттерах и инициализируй через копирование в конструкторе.
5. Избегай утечек ссылок — не передавай 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 = new ArrayList<>(hobbies); // Defensive copy
}
public String getName() {
return name;
}
public List getHobbies() {
return new ArrayList<>(hobbies); // Defensive copy
}
}
```

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