2016-06-07 14 views
0

Ich muss ein Objekt in andere konvertieren. Das Objekt hat verschachtelt von vielen inneren Objekte. Aber Quell-und Zielobjekte sind identisch nach Datentyp, Variablenname, Klassenname etc. Gibt es ein effektives Werkzeug mit weniger Codierung?Mapping zwei identische Klassen in Java mit Third-Party-Bibliothek

Ich habe versucht, orika aber seine Erwartung wie zu definieren unter

factory.registerClassMap(factory 
       .classMap 

mit allen Feldern und innerem Objekt fields.I mit vielen Iterator endete und eingereicht Zuordnungen festlegen.

Hilf mir oder führe mich Gibt es eine andere Möglichkeit, Objekte mit identischen Objekten abzubilden.

+0

wenn ich richtig das Problem zu verstehen, wollen Sie ein Objekt klonen, die innere references, Sie Apache commons versuchen könnte, oder überprüfen Sie [hier ] (http://stackoverflow.com/questions/9264066/beanutils-clonebean-deep-copy) die Antworten, sonst müssen Sie eine benutzerdefinierte DeepCopy-Methode implementieren – AntJavaDev

+0

Nein, ich möchte nicht das Objekt klonen. Ich habe POJO und JAXB, die sind identisch. Ich muss den Wert von POJO zu JAXB – Ramkumar

+0

ok dann haben Sie das Pojo-Objekt, und Sie werden es auf das JAXB-Objekt klonen, wenn sie identisch sind, wie Sie sagen und nur der Paketname ändern s – AntJavaDev

Antwort

0

Sie können sich MapStruct ansehen.

Eine andere Alternative ist Dozer. Klassen können 1 zu 1 zugeordnet werden, indem Sie im Mapper-XML-Dateiattribut wildcard="true" definieren. Dies bedeutet, dass automatisch versucht wird, jede Eigenschaft in den zwei Objekten zuzuordnen. Wenn das Attribut auf "false" gesetzt ist, werden nur explizit definierte Felder zugeordnet.

<?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

gibt es ein Beispiel, um zwei identische Objekte mit Hilfe von Mapstruct – Ramkumar

+0

abzubilden. Enthaltenes anderes Mapping Framework, in dem 1 auf 1 Mapping fast out of the box gemacht wird. – uniknow

+0

Entschuldigung, ich verwende keine Xml-Datei in meinem Frühling Servlet 3 Anwendung – Ramkumar