Встречается на собеседованиях • сегодня
Что необходимо предусматривать при копировании объекта иммутабельного класса
При копировании иммутабельного объекта важно учитывать:
1. **Поверхностное vs глубокое копирование** – если класс содержит изменяемые поля (например, коллекции), нужно создать их копии.
2. **Клонирование через конструктор** – самый надежный способ, так как конструктор уже обрабатывает все поля.
3. **Использование `clone()`** – требует осторожности, так как стандартная реализация делает поверхностное копирование.
Пример:
```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 ImmutablePerson copy() {
return new ImmutablePerson(this.name, this.hobbies); // Новый объект с копией списка
}
}
```
Если объект полностью иммутабельный (все поля final и неизменяемые), можно просто возвращать `this`, так как копия не нужна.

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