Zdravím,
taky používáme Dozer, sice ne na klonování, ale na mapování Entit na DTO, ale ze svého principu to v pohodě na klonování použít jde, jak je uvedeno kolegou níže.

SouceObject clone = mapper.map(sourceObject, souceObject.getClass());

Zatím jsme na žádný problém nenarazili.

Je možné, že ten googlecloning bude rychlejší, když se specializuje jen na to clonování. Dozer je zase komplexnější řešení, protože umožňuje navíc mapovat jakoukoliv classu na jakoukoliv jinou, psát si vlastní mappery (konverze dat), atd. Navíc se mi zdá, že Dozer bude možná mít širší komunitu uživatelů, takže bude lépe otestován a prověřen časem. Ale nechci Vám ho nijak vnucovat, výběr je jen na Vás :).

Petr

Dne 19.7.2011 14:20, Libor Jelinek napsal(a):
Možná stačil! Mrknu na to!

A http://code.google.com/p/cloning/ někdo nepoužíváte? Můžete případně porovnat?

Libor


Dne 19. července 2011 12:13 Petr Prikryl <[email protected] <mailto:[email protected]>> napsal(a):

    Dobry den,
    dozer by Vam nestacil?
    http://dozer.sourceforge.net/
    http://dozer.sourceforge.net/documentation/deepmapping.html

    SouceObject clone = mapper.map(sourceObject, SouceObject.class)
    PP


    On Tue 19 Jul 2011 11:53:41 AM CEST, Libor Jelinek wrote:

        Dobrý den,
        chtěl bych vytvořit hlubokou kopii instance, ale nechci pro
        každou kódovat ručně složitě hluboké kopírování - hlavně
        vypisovat všechny property ručně a pak stejně na něco
        zapomenout. A přededně nevím ani jaké objekty obdržím. Jsou to
        např. JPA entity o kterých předem nevím.

        Vždyť by deep klonování asi šlo provést pomocí Reflection API.
        Existuje nějaká knihovna, která to již řeší?

        <flamewar>Krom toho mi to přijde jako příklad inovace, která v
        Javě mohla být už roky. Nejspíš pomocí nějaké anotace
        @DeepCloneable... A ještě by to chtělo do Javy přidat nějaké
        @Immutable jako má Groovy, aby to chudák programátor znova
        nemusel hlídat sám.</flamewar>

        Nechci odkazy z Googlu (to jsem uz zkusil a cosi existuje),
        ani tipy přes de/serializaci jaké jsem též našel. Obojí je
        příliš pracné a "error-prone"... Ale spíš váš názor a vaší
        zkušenost, jestli něco používáte sami či jak to řešíte Vy.

        Díky
        Libor

        PS: Prosím přednostně o reakce na otázku samotnou. A potom,
        jak je Java špatná a jazyk XYZ lepší (a tomto asi vážně bude) :-)






--
Petr

Odpovedet emailem