Отображение двух идентичных классов в 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

Другие вопросы по тегам