2016-06-07 3 views
0

Мне нужно преобразовать один объект в другой. Объект имеет множество внутренних объектов. Но оба источника и целевые объекты идентичны по типу данных, имени переменной, имени класса и т. Д. Есть ли эффективный инструмент для этого с меньшим количеством кодирования.Сопоставление двух одинаковых классов в java с сторонней библиотекой

Я попытался Orika, но его ожидает, чтобы определить, как показано ниже

factory.registerClassMap(factory 
       .classMap 

со всеми полями и внутренним объектом fields.I в конечном итоге с большим количеством итератора и настройкой отображения поданного.

Помогите мне или проведите меня. Есть ли другой способ для сопоставления объектов с одинаковыми объектами.

+0

, если я правильно понимаю ваш вопрос, вы хотите, чтобы клонировать объект, который имеет внутренние ссылки, вы можете попробовать Apache Commons или проверить [здесь ] (http://stackoverflow.com/questions/9264066/beanutils-clonebean-deep-copy) ответы, в противном случае вам придется реализовать собственный метод DeepCopy – AntJavaDev

+0

Нет. Я не хочу клонировать объект. У меня есть POJO и JAXB, которые идентичны. Мне нужно установить значение из POJO в JAXB – Ramkumar

+0

ok, тогда у вас есть объект pojo, и вы будете клонировать его на объект JAXB, если они идентичны, как вы говорите, и только изменение имени пакета s – AntJavaDev

ответ

0

Вы можете взглянуть на MapStruct.

Другая альтернатива Dozer. Классы могут отображаться 1 на 1, определяя в атрибуте файла xper файла mapper 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> 
+0

есть ли какой-либо пример для сопоставления двух одинаковых объектов с использованием Mapstruct – Ramkumar

+0

Включена другая структура отображения, в которой отображение 1 на 1 почти выполняется из коробки. – uniknow

+0

извините, я не использую какой-либо xml-файл в моем весеннем сервлете 3 приложение – Ramkumar

Смежные вопросы