Встречается на собеседованиях • сегодня
Как можно преобразовать обычный класс в Immutable класс
Неизменяемый (immutable) класс в Java должен удовлетворять следующим условиям:
1. Все поля объявлены как `final` и инициализируются в конструкторе.
2. Нет сеттеров (методов, изменяющих состояние).
3. Класс объявлен как `final`, чтобы предотвратить наследование.
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 = new ArrayList<>(hobbies); // защитная копия
}
public String getName() { return name; }
public List getHobbies() {
return new ArrayList<>(hobbies); // возвращаем копию
}
}
```
Ключевое: защита от внешнего изменения состояния через копирование изменяемых объектов.

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