我需要将一个对象转换为另一个对象。该对象嵌套了许多内部对象。但是源对象和目标对象在数据类型、变量名、类名等方面都是相同的。是否有任何有效的工具可以减少编码。
我已经尝试过 orika 但它期望定义如下
factory.registerClassMap(factory
.classMap
包含所有字段和内部对象字段。我最终得到了很多迭代器和设置字段映射。
帮助我或指导我有没有其他方法可以将对象映射到相同的对象。
你可以看看MapStruct。
另一种选择是推土机。通过在映射器 xml 文件中定义属性,可以一对一地映射类wildcard="true"
。这意味着它将自动尝试映射两个对象中的每个属性。当属性设置为 false 时,它只会映射明确定义的字段。
<?xml version="1.0" encoding="UTF-8"?>
<mappings xmlns="http://dozer.sourceforge.net"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://dozer.sourceforge.net
http://dozer.sourceforge.net/schema/beanmapping.xsd">
<mapping wildcard="true">
<class-a>org.example.ObjectA</class-a>
<class-b>org.example.ObjectB</class-b>
</mapping>
</mappings>