2012-04-18 113 views
0

我有一個複雜的對象層次結構,它有一些擴展。在Java中複製複雜對象層次結構

class One { String name; 顏色的顏色; 列出衣服; }

class two extends One { Test test; }

class Foo {One One;兩個; }

我想將一個類的對象的所有屬性複製到另一個類的新對象中。 如何做到這一點?有沒有可用的圖書館?

回答

4

這裏有幾個:

推土機是相當快的,有好多個配置選項。 Orika據說非常快,雖然我沒有不雅地證實(檢查他們在他們的網站上發佈的基準)。

+0

很高興知道!謝謝 – axcdnt 2012-04-18 18:56:33

+0

對於我使用的架構來說,這是一個不錯的嘗試:將TO轉換爲VO時。可能有必要了。你有沒有用過這樣的東西? – axcdnt 2012-04-18 19:05:59

+1

我們使用Dozer將實體對象複製到DTO,並且它能夠很好地處理分離對象和非規範關係。在XML中定義關係的能力允許我們將對象表示從對方分離出來,這很好。 – Perception 2012-04-18 19:20:32

3

Dozer是一個Java Bean到Java Bean映射器,可遞歸地將數據從一個對象複製到另一個對象。

您可以使用註釋或XML以編程方式定義用於複製對象字段的映射。

2

Wel,我已經使用orika和dozer,我可以說orika比替換後的項目中的推土機至少快10倍。而且orika需要更少的jmm堆內存。 orika的速度更快是因爲它將映射規則編譯爲運行時java類來執行屬性映射,而不是在運行時查看映射規則,並使用java反射在運行時獲取和設置屬性值。