我有一个复杂的对象层次结构,有两个扩展。
第一课{ 字符串名称; 颜色; 列出衣服; }
第二课延伸一{ 测试一下; }
类Foo {One One;两个两个; }
我想将类One的对象的所有属性复制到类的另一个新对象中。 这该怎么做 ?有没有图书馆?
答案 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