Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум программистов > Java: Общие вопросы > Копирующий конструктор. Как правильно? |
Автор: smartchecker 2.10.2013, 12:51 | ||||
Есть Arraylist из неких объектов.
Мне нужна копия этого list'а, но чтобы в копии были новые объекты, а не ссылки на объекты из первого.
Не работает. Означает ли это что я должен написать в Triad копирующий конструктор или ещё что-нибудь? Как это правильно реализовать? |
Автор: danilych 2.10.2013, 13:16 |
Да, все верно думаете. Нужно создать копию каждого объекта и поместить ее в ArrayList |
Автор: smartchecker 2.10.2013, 13:21 | ||
Если объект Triad содержит, ещё и другие самописные объекты, то для них, тоже надо реализовывать копирующие конструкторы? И есть ли где-нибудь внятный пример, чтобы посмотреть? Как в итоге будет выглядеть код для копирования ArrayList'а? |
Автор: LSD 2.10.2013, 15:21 | ||
Если они mutable. В принципе есть техника глубокого копирования через сериализацию, но это неэффективно с точки зрения производительности лучше копирующий конструктор. |
Автор: GreenTea22 2.10.2013, 20:43 |
Можно так же использовать копирование одного обьекта в другой через рефлексию. Как это делает например http://dozer.sourceforge.net/ Но если у вас не большой проект и не хотите заморачиваться с таким монстром как дозер, то самое простое решение написать копирующий конструктор. Этот ответ добавлен с нового Винграда - http://ru.vingrad.com//Копирующий-конструктор.-Как-правильно-id524bed3dae2015ce44000000#findElement_E7045_524c5b52ae2015f51c0007da_0 |