Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Копирование объекта 
:(
    Опции темы
User008
Дата 17.4.2012, 09:19 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 306
Регистрация: 9.9.2009

Репутация: нет
Всего: 1



Как копировать объект? В интернете на эту тему постоянно нахожу про наследование от класса clonable или что-то в этом роде. Но это мне не подходит. Объект произвольного типа.
PM MAIL   Вверх
Stolzen
Дата 17.4.2012, 09:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1041
Регистрация: 17.10.2005

Репутация: 23
Всего: 48



Варианты:

Код
BeanUtils.cloneBean(this) 

пакет commons-beanutils

Код
SerializationUtils.clone(this)

commons-lang, класс должен быть implements Serializable

Так же можно преобразовать в xml/json и затем обратно.


--------------------
datatalks.ru - анализ данных, статистика, машинное обучение
PM MAIL WWW   Вверх
AxNe0
Дата 18.4.2012, 12:40 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 263
Регистрация: 24.4.2006
Где: St. Petersburg

Репутация: 4
Всего: 5



User008, для копирования объектов можно применить клонирование. Клонирование, в свою очередь, бывает двух видов "глубокое" (deep clone) и "неглубокое" (shallow clone). Разница между ними в том, что shallow clone по сути клонирует только примитивы, поля объекта остаются прежними, а deep clone полностью клонирует структуру объекта. 

Сперва надо определиться, какой тип клонирования нужен, а потом можно воспользоваться неплохой и довольно гибкой библиотекой Java Deep-Cloning Library, помимо глубокого клонирования она позволяет выполнять неглубокое, а также добавлять исключения, в случае, если требуется не клонировать экземпляры определенных классов. И да, при этом классам вовсе необязательно реализовывать какой-либо интерфейс.


Это сообщение отредактировал(а) AxNe0 - 18.4.2012, 12:41


--------------------
SCJP 6, SCBCD 5, OCEWSD 6
blog
PM ICQ Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
javastic
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux, javastic.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.1513 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.