我有一个复杂的对象层次结构,它有几个扩展。
类一 { 字符串名称;颜色颜色;列出衣服;}
类二扩展一{测试测试;}
Foo类{一一;二二;}
我想将 One 类对象的所有属性复制到另一个类的新对象中。这该怎么做 ?有没有可用的图书馆?
我有一个复杂的对象层次结构,它有几个扩展。
类一 { 字符串名称;颜色颜色;列出衣服;}
类二扩展一{测试测试;}
Foo类{一一;二二;}
我想将 One 类对象的所有属性复制到另一个类的新对象中。这该怎么做 ?有没有可用的图书馆?
这里有一对:
推土机速度非常快,并且有很多配置选项。Orika 据说速度非常快,尽管我没有不雅地证实这一点(查看他们在其网站上发布的基准)。
Dozer是一个 Java Bean 到 Java Bean 的映射器,它递归地将数据从一个对象复制到另一个对象。
您可以使用注释或 XML 以编程方式定义用于复制对象字段的映射。
嗯,我用过 orika 和 dozer,我可以说 orika 在我的项目中比 dozer 在更换后至少快 10 倍。而且 orika 需要更少的 jvm 堆内存。orika 更快是因为它将映射规则编译为运行时 java 类来执行属性映射,而不是在运行时查看映射规则并使用 java 反射在运行时获取和设置属性值。
还有一个比 Orika 更快的框架,看看那里 - http://inspire-software.com/confluence/display/GeDA/Benchmarks
我对一个类中的 4 个字段和 1000000 次复制操作进行简单测试,GeDA 用了 100 毫秒,Orika 用了 1000 毫秒,Dozer 用了 4000 毫秒