| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > 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 |
| Пример можно в фак наверно |