![]() |
Модераторы: LSD, AntonSaburov |
![]() ![]() ![]() |
|
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Нет ни одного готового класса который мог бы осуществлять глубокое клонирование, потому что у Object метод clone() не public.
Так что или писать такое дело самому (с учетом того, что храниться в List) или сделать клонирование через сериализацию (объекты естественно должны быть сериализуемы). -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
ехххх, да незадачка.
мне удивительно почему не помагает
вроде ж как через new.. |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
new создает новый ArrayList и копирует туда ссылки на объекты из исходной коллекции.
-------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
попробую конечно через итераторы но думаю что ничего хорошего из этого не выйдет.
LSD, а как это через сериализацию? Добавлено @ 11:55 ого так это ж ещё надо будет создавать каждый объект что в листе заново.... ведь если их просто переписать всеровно ссылки та останутся на старые... не это не реально, это все переменные объекта надо будет достать и заново записать в новый объект, мало того что объектов не мало в листе так ещё и у объекта много всего... Это сообщение отредактировал(а) Reptor - 2.7.2008, 11:56 |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Reptor, ну, а что сделать? Ты такие условия ставишь. Или смирись, или ищи как обойтись только ссылками на объекты.
|
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Platon, ну а как обойтись ссылками... не как не выйдет так как они то должны быть независимы а так меняеш один меняется 2-ой...
![]() |
|||
|
||||
LSD |
|
|||
![]() Leprechaun Software Developer ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 15718 Регистрация: 24.3.2004 Где: Dublin Репутация: 210 Всего: 538 |
Да практически как гланды удалять через ж ![]()
только учти, что это штука не быстрая и глубокое клонирование будет работать быстрее. -------------------- Disclaimer: this post contains explicit depictions of personal opinion. So, if it sounds sarcastic, don't take it seriously. If it sounds dangerous, do not try this at home or at all. And if it offends you, just don't read it. |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
я не совсем понимаю что имеется в виду под глубоким копированием? почему глубоким? |
|||
|
||||
dorogoyIV |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1503 Регистрация: 26.3.2007 Репутация: 3 Всего: 46 |
имеется ввиду: глубокое клонирование - копирование всего массива с такими же объектами, только новыми поверхностное клонирование - копирование всего массива с теми же ссылками (сам массив новый) ![]() ![]() Это сообщение отредактировал(а) dorogoyIV - 2.7.2008, 14:44 |
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
dorogoyIV, всё я понял..
![]() всем огромное спасибо... надо будет попробовать сделать 2 варианта. |
|||
|
||||
Reptor |
|
||||||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
LSD, смотри я немножко поменял то что ты прислал и у меня что то не вышло
и вот класс экземпляры которого в листе
и вот вывод list = [aaa] copy1 = [aaa] copy2 = [aaa] Changing... list = [aaabbbbddd, zzz] copy1 = [aaabbbbddd] copy2 = [aaahello] list = [dd@1632c2d, dd@d70d7a, dd@b5f53a, dd@1f6f0bf, dd@137c60d] copy1 = [dd@1632c2d, dd@d70d7a, dd@b5f53a, dd@1f6f0bf, dd@137c60d] copy2 = null почему то на ArrayList<dd> copy2_2 = (ArrayList<dd>) zz.serialClone(listDD); не сработало copy2 = null ? Может что то с классом не так? а так всё хорошо работает а с собственным классом не хочет. Добавлено @ 11:08 о понял надо ж
Это сообщение отредактировал(а) Reptor - 3.7.2008, 11:09 |
||||||
|
|||||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
у меня ещё такой вопрос по поводу сеарилизацыи
если у меня в классе есть внутрений класс то что б он тоже сеарилизовался надо у него тоже указывать implements Serializable. Или у его родителя достаточно?? Просто в зависимости от того указываю я или нет то приложение как то по разному себя ведёт. |
|||
|
||||
Platon |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1801 Регистрация: 25.4.2006 Репутация: 16 Всего: 40 |
Все классы должны быть сериализуемыми.
|
|||
|
||||
Reptor |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1213 Регистрация: 29.12.2004 Репутация: нет Всего: 0 |
Platon, да я смотрю что если во внутренем классе не ставить implements Serializable то основной совсем не клонируется
|
|||
|
||||
![]() ![]() ![]() |
Правила форума "Java" | |
|
Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Java: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |