2014-02-13 8 views
9

Dies ist wahrscheinlich eine einfache, aber ich kann es nicht in der Dokumentation finden. Ich habe eine Person KlasseOrika - Liste zur Liste Umwandlung

class BasicPerson { 
    private String name; 
    private int age; 
    private Date birthDate; 
    // getters/setters omitted 
} 

und eine Liste der es

ArrayList<Person> 

Ich möchte, dass sie sich ändern, sie zu

ArrayList<PersonDTO> 

aber aus einer expliziten Schleife zu ändern. Gibt es eine Möglichkeit, MapperFacade.map für eine Liste zu verwenden, um eine Zeilenumwandlung aufzulisten?

+0

Sie könnten Sie Guava und Lists.transform. [link] (http://stackoverflow.com/questions/7383624/how-to-transformlist-to-another-listy) –

+0

Danke. Aber orika ist ein Byte-Code, der schneller scheint. – Jeb

+0

Plus Ich finde es schwierig, ein Framework oder eine Bibliothek mit diesem oben auf seiner Website zu verwenden https://code.google.com/p/guava-libraries/wiki/FunctionalExplained - "Übermäßige Verwendung von Guavas funktionalen Programmier-Idiomen kann dazu führen Das sind bei weitem die am leichtesten (und am häufigsten) missbrauchten Teile von Guava, und wenn Sie auf absurde Längen gehen, um Ihren Code zu einem "Einzeiler" zu machen, weint das Guava-Team " – Jeb

Antwort

13

Es hat diese Funktionalität eingebaut. Haben Sie versucht, die Methode

List<D> ma.glasnost.orika.impl.ConfigurableMapper.mapAsList(Iterable<S> source, Class<D> destinationClass) zu verwenden?

Ich habe versucht, eine aktualisierte Version des Javadoc zu finden, aber hier ist einer der 1.3.5. Die aktuelle Version ist 1.4.5. MapperFacade Class

+4

Yup die obige Antwort ist richtig. Sie können einfach 'return mapper.mapAsList (basicPerson, PersonDTO.class) verwenden;' Sollte akzeptiert werden. –