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

Что необходимо предусматривать при клонировании объекта иммутабельного класса

При клонировании иммутабельного класса важно учитывать: 1. **Необходимость клонирования**: иммутабельные объекты можно безопасно разделять между потоками, поэтому часто клонирование не требуется. Если объект уже иммутабелен, возвращайте его же через `this`. 2. **Глубокое клонирование**: если класс содержит изменяемые поля, их нужно клонировать рекурсивно. Пример: ```java public final class ImmutableClass implements Cloneable { private final List items; public ImmutableClass(List items) { this.items = Collections.unmodifiableList(new ArrayList<>(items)); } @Override public Object clone() { try { // Возвращаем this, так как класс иммутабельный return super.clone(); } catch (CloneNotSupportedException e) { throw new AssertionError(); } } } ``` 3. **Переопределение clone()**: сделайте метод public и рассмотрите возврат конкретного типа. Для иммутабельных классов можно просто возвращать текущий объект. 4. **Потокобезопасность**: иммутабельные объекты по определению потокобезопасны, это свойство должно сохраняться после клонирования.
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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