powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Копирование полей объекта
6 сообщений из 6, страница 1 из 1
Копирование полей объекта
    #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
Копирование полей объекта
    #39136770
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andrej59,

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


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