Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / Копирование полей объекта / 6 сообщений из 6, страница 1 из 1
24.12.2015, 09:36
    #39136752
andrej59
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
Добрый день!

Задался вопросом, копирования полей из объекта одного класса в объект другого класса, поля которых одинаковые.

Например, есть:
class User{
private long id;
private name;
}
class UserView{
private long id;
private name;
}

Хочу:

User user = new User();
user.setId(123);
user.setName("Петя");

userView = new UserView();
Utils.copy(user, userView); // все поля, которые совпали, скопировались в объект userView.

Можно конечно, написать это самому, но мне подсказывает внутренняя интуиция, что уже есть библиотека, которая может это сделать.

Подскажите пожалуйста.
...
Рейтинг: 0 / 0
24.12.2015, 09:58
    #39136770
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
andrej59,

Во-первых есть два типа копироавния shallow и deep.
Рекомендованый путь это реализовать Clonable и вызывать метод Object.clone, который умеет shallow copy
Для deep copy удобно использовать сериализацию. Надо только учесть расход по памяти.
Рекурсивного обхода с копированием по полям я не помню. А вот для свойств всяких BeanUtils полно и в Spring и в Apache Commons.
Опять же Apache Commons это первое куда нужно смотреть с подобными вопросами.
Ещё для свойств JavaBeans рекурсивный обход не сложно через Introspector написать. Работы на несколько минут.
...
Рейтинг: 0 / 0
24.12.2015, 10:01
    #39136774
Blazkowicz
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
andrej59 // все поля, которые совпали, скопировались в объект userView.
Не обратил внимания на эту фразу. В таких случаях лучше копировать руками, так как для разнородных объектов всегда требуется дополнительная логика.
А так, посмотри
org.apache.commons.beanutils.BeanUtils.copyProperties()
...
Рейтинг: 0 / 0
24.12.2015, 10:31
    #39136802
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
Посмотри nomin
...
Рейтинг: 0 / 0
24.12.2015, 10:35
    #39136810
fixxer
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
А конкретнее automapping
...
Рейтинг: 0 / 0
24.12.2015, 10:47
    #39136824
andrej59
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Копирование полей объекта
Спасибо всем, обязательно посмотрю.
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / Копирование полей объекта / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]