Отображение двух идентичных классов в Java с помощью сторонней библиотеки
Мне нужно преобразовать один объект в другой. Объект вложен во множество внутренних объектов. Но и исходный, и целевой объекты идентичны по типу данных, имени переменной, имени класса и т. Д. Есть ли эффективный инструмент для этого с меньшим количеством кода.
Я пробовал orika, но его ожидание определится как ниже
factory.registerClassMap(factory
.classMap
со всеми полями и внутренними полями объекта. Я закончил с большим количеством итераторов и установкой полевых отображений.
Помогите мне или направьте меня Есть ли другой способ сопоставить объекты с идентичными объектами.
2 ответа
Вы могли бы взглянуть на MapStruct.
Другой альтернативой является Dozer. Классы могут быть отображены 1 на 1, определив в атрибуте файла mapper xml wildcard="true"
, Это означает, что он автоматически попытается отобразить каждое свойство в двух объектах. Когда атрибут имеет значение false, он будет отображать только явно определенные поля.
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<mapping wildcard="true">
<class-a>org.example.ObjectA</class-a>
<class-b>org.example.ObjectB</class-b>
</mapping>
</mappings>
Лучше использовать правильную библиотеку клонирования, проверьте это http://blog.jadira.co.uk/blog/2013/6/25/announcing-jadira-cloning.html