Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Копирование обьекта |
Автор: ElectricalStorm 3.8.2004, 15:38 |
есть обьект класса LinkedHashMap - hash нужно создать его копию ... таким образом что бы при изменении самого объекта копия не исменялась ? |
Автор: Domestic Cat 3.8.2004, 15:40 |
clone(). |
Автор: ElectricalStorm 3.8.2004, 15:43 |
непомог мне clone ![]() Добавлено @ 15:46 кажется до меня дошло .... мне нужно глубокое клонирование ... |
Автор: Domestic Cat 3.8.2004, 16:08 |
![]() |
Автор: ElectricalStorm 3.8.2004, 17:11 |
это сложно ....я слышал что есть более простой способ с помощью копи конструктора ? |
Автор: Domestic Cat 3.8.2004, 17:20 | ||||||
Нужно тогда все равно делать сабкласс с конструктором:
Вот что по этому поводу пишет Эккель:
В принципе того же эффекта можно добиться если написать метод типа :
Все равно нужно помнить о том, что копия должна быть глубокой. Cамый естественный метод - \ clone() |
Автор: ElectricalStorm 3.8.2004, 17:29 |
Спасибо ! ушел думать ![]() |
Автор: ElectricalStorm 3.8.2004, 17:55 | ||
вот написал код для LinkedHashMap двойной вложености а как сделать для неопределенной ... я понимаю что нужно реализовать рекурсивный метод copy но чего-то никак не получается ... ![]()
|
Автор: Domestic Cat 3.8.2004, 18:01 | ||
Но сработает только если MyLinkedHashMap - сабкласс LinkedHashMap, и содержит этот самый метод copy. Тогда назови метод не copy а clone ... ![]() |
Автор: ElectricalStorm 3.8.2004, 18:03 |
аааааа.... кажися дашло ![]() |
Автор: ElectricalStorm 3.8.2004, 18:36 | ||
чесно говоря не совсем понял почему но это работает ![]()
|
Автор: ElectricalStorm 3.8.2004, 18:46 |
нет сорри не работает ![]() |
Автор: Domestic Cat 3.8.2004, 19:09 | ||
Т
|
Автор: ElectricalStorm 3.8.2004, 19:23 |
Спасибо большое в этом примере всё прекрасно но при переносе в программу не работает ![]() |
Автор: Domestic Cat 3.8.2004, 19:28 |
Странно, может тогда код приведешь? |
Автор: ElectricalStorm 3.8.2004, 19:30 |
ой у меня там такой большой страшный код ... что мне очень стыдно его приводить здесь ... если не разберусь приведу ![]() Спасибо за помощь ! |
Автор: Domestic Cat 3.8.2004, 19:30 | ||
Кстати, должно быть if (entry.getValue() instanceof MyLinkedMap) вместо if (entry instanceof MyLinkedMap) Добавлено @ 19:35
Ну все равно, хотя бы кусок кода |
Автор: ElectricalStorm 3.8.2004, 19:44 |
всё заработало большое спасибо ! я сам ступил ![]() |
Автор: ElectricalStorm 4.8.2004, 16:45 |
Пример можно в фак наверно |