Эйч
Эйч
  • Все менторы
Задачи/Java-разработчик/Глубокое клонирование объекта

Глубокое клонирование объекта

Условие задачи

Необходимо реализовать метод clone(), который создаст глубокую копию объекта Customer.

  1. Клонированный объект не должен ссылаться на те же вложенные объекты (Address, List<CellNumber>).
  2. Все объекты внутри Customer должны быть независимыми копиями.
  3. После клонирования equals() должен возвращать true, но ссылки на вложенные объекты должны быть разными.
javapackage com.jetbulb.interviews;

import java.util.Collections;
import java.util.List;

public class JetbulbInterview {
    public static void main(String[] args) {
        Customer customer = new Customer(
                "123",
                66,
                new Address(1, "Street"),
                Collections.singletonList(new CellNumber("777-555-666", 3.14D))
        );

        Customer clonedCustomer = customer.clone();

        System.out.println(customer.equals(clonedCustomer)); // true
        System.out.println(customer == clonedCustomer); // false
        System.out.println(customer.address == clonedCustomer.address); // false
        System.out.println(customer.number == clonedCustomer.number); // false
    }
}

class Customer implements Cloneable {
    String id;
    int age;
    Address address;
    List<CellNumber> number;
}

class Address implements Cloneable {
    int id;
    String name;
}

class CellNumber implements Cloneable {
    String number;
    double coverage;
}

Профессия

Java-разработчик

Сопроводим до оффера

Умножим шансы на каждом этапе поиска и поможем получить выгодный оффер

Узнать больше

Сервис развития карьеры

Контактыteam@h.careers@hcareers
TelegramVKYouTubeLinkedIn
Профессии
Компания
С чем помогаемОтзывыВопросы и ответыСертификатыВебинарыСтать ментором

Платформа принадлежит ООО "Эйч Карьера"
ИНН 9710095807 ОГРН 1227700077340
Адрес: 127006, город Москва, Старопименовский пер, д. 18 стр. 2, помещ./ком./этаж I/19/2

Copyright © 2020-2025 Сервис развития карьеры Эйч. Все права защищены.

Политика конфиденциальностиПользовательское соглашениеОферта