在Java中复制复杂对象层次结构

时间:2012-04-18 18:37:51

标签: java

我有一个复杂的对象层次结构,有两个扩展。

  

第一课{       字符串名称;       颜色;       列出衣服; }

     

第二课延伸一{       测试一下; }

     类Foo {One One;两个两个; }

我想将类One的对象的所有属性复制到类的另一个新对象中。 这该怎么做 ?有没有图书馆?

4 个答案:

答案 0 :(得分:4)

以下是一对夫妇:

Dozer非常快,并且有很多配置选项。据说Orika非常快,但我没有猥亵证实(查看他们在网站上发布的基准)。

答案 1 :(得分:3)

Dozer是Java Bean to Java Bean映射器,它将数据从一个对象递归复制到另一个对象。

您可以使用注释或XML以编程方式定义复制对象字段的映射。

答案 2 :(得分:2)

好吧,我已经使用了orika和推土机,我可以说orika在更换后的项目中比推土机快至少10倍。 orika还需要更少的jvm堆内存。 orika更快是因为它将映射规则编译为运行时java类来执行属性映射,而不是在运行时查看映射规则并使用java反射来获取和设置运行时的属性值。

答案 3 :(得分:1)

还有另一个框架比Orika更快,看看那里 - http://inspire-software.com/confluence/display/GeDA/Benchmarks

我的简单测试包括一个类中的4个字段和1000000个复制操作,GeDA需要100ms,Orika需要1000ms,Dozer需要4000ms