Клонирование растений

  • 12
  • Недоступна
Класс Plant не должен реализовывать интерфейс Cloneable. Реализуй механизм глубокого клонирования для Tree.
Вы не можете решать эту задачу, т.к. не залогинены.
Комментарии (79)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий вы должны авторизоваться
Феоморт32 уровень, Калининград
7 сентября, 20:16
Это нормально, что мне уже второй раз становится не нужен CloneNotSupportedException, я удаляю try/catch и валидатор принимает?
Александр24 уровень, Нижний Новгород
20 июля, 18:29
Сделал через
this.branches.clone()
Я понимаю, что у объектов хэш-код одиноковый после клонирования, но почему он разный у массивов branches? Это потому что в классе Arrays метод hashCode() не переопределен и рассчитывается из номеров ячеек памяти, которые занимают массивы branches разных объектов?
Павел Дудров35 уровень, Санкт-Петербург
19 мая, 13:29
благодаря Arrays.copyOf получилось решение сделать в одну строчку
Андрей23 уровень, Минск
1 июня, 06:43
не нашел этот метод) спасибо пришлось через for и new String
Павел Дудров35 уровень, Санкт-Петербург
1 июня, 08:19
как-то так
return new Tree(this.getName(),getBranches()==null?null:Arrays.copyOf(getBranches(),getBranches().length));
Андрей23 уровень, Минск
1 июня, 08:40
имел ввиду, что не нашел сразу. но спасибо)
Kostya Kozhevnikov27 уровень, Москва
14 марта, 16:23
обьясните зачем иногда пишут super.clone? Вызывают у родительского класса?
RFedorenkov41 уровень, Москва
30 апреля, 20:11
Чтобы получить оригинал клонироуемого объекта
CTAPuk41 уровень, Москва
3 февраля, 16:31
9233
RFedorenkov41 уровень, Москва
30 апреля, 20:11
9790
СЕРГЕЙ25 уровень, Озёрск
5 июня, 14:08
10073
Кощеев Алексей23 уровень, Димитровград
17 августа, 12:01
10510
Игорь Кучер38 уровень, Киев
21 января, 08:57
Почему массив имеет метод клонирования, а String этого метода не имеет? И строка, и массив имеют суперклассом класс Object. Но когда вызываю клонирование массива всё ок, а когда вызываю клонирование строки, то я не могу этого сделать, поскольку clone() в классе String является protected... Не понимаю
Igor25 уровень, Санкт-Петербург
21 января, 08:47
tree.branches = this.getBranches().clone(); специально сделан метод в классе Tree
RFedorenkov41 уровень, Москва
30 апреля, 20:12
Вот это 5! Зачем то через Arrays.copyOf решил ((((
Alex Shaposhnikov28 уровень, Минск
8 октября 2019, 11:06
Tree clone = new Tree(super.name, branches); clone.branches = Arrays.copyOf(this.branches, this.branches.length); return clone; Валидатор пропустил. Может можно сделать лучше и проще?
Александр25 уровень
22 октября 2019, 15:36
return new Tree(getName(), branches.clone());
MrKermit30 уровень, Москва
16 сентября 2019, 09:54
Arrays.copyOf()
Павел Минеев41 уровень, Челябинск
3 сентября 2019, 13:05
Первая нормальная задача в блоке. Подсказка
String[] branches = this.branches.clone();