Задача не проходит проверку: В классе Solution должен быть корректно реализован метод clone.
package com.javarush.task.jdk13.task21.task2104;
import java.util.LinkedHashMap;
import java.util.Map;
import java.util.Objects;
/*
Глубокое клонирование карты
*/
public class Solution implements Cloneable {
@Override
protected Object clone() throws CloneNotSupportedException {
Solution clone = (Solution) super.clone();
clone.users = new LinkedHashMap<>();
for (Map.Entry<String, User> userEntry : users.entrySet()){
clone.users.put(userEntry.getKey(), (User) userEntry.getValue().clone());
}
return clone;
}
public static void main(String[] args) throws CloneNotSupportedException {
Solution solution = new Solution();
solution.users.put("Hubert", new User(172, "Hubert"));
solution.users.put("Zapp", new User(41, "Zapp"));
Solution clone = (Solution) solution.clone();
System.out.println(solution);
System.out.println(clone);
}
protected Map<String, User> users = new LinkedHashMap();
public static class User implements Cloneable {
@Override
public Object clone() {
try {
return super.clone();
} catch (CloneNotSupportedException r) {
return new User(age, name);
}
}
int age;
String name;
public User(int age, String name) {
this.age = age;
this.name = name;
}
}
}