Java:对象属性拷贝如dto转do和do转dto的2类方法

1,直接用现成的库如:Cglib的BeanCopier

依赖

BeanCopier支持两种方式拷贝:

1,简单拷贝,仅对两个bean间属性名和类型完全相同的变量进行拷贝;

2,自定义Converter的拷贝,可以对某些特定属性值进行特殊转换操作后拷贝

简单拷贝:


只要字段类型和名称相同就能直接拷贝:

结果

如果需要对集合数据进行拷贝,比如List,Map,可以自己封装个工具类。

测试

结果

当源和目标的属性有名称相同但类型不同时,可以自定义Converter。但是自定义以后,所有类型都需要做匹配。

假设有属性需要把String匹配到整数


然后执行代码:


2.自己写映射

mapstruct大材小用自己写映射方式:


然后

然后 实现接口


测试


这种方式,可以设计一下引入策略模式,然后配合配置文件来切换策略。

你可能感兴趣的:(Java:对象属性拷贝如dto转do和do转dto的2类方法)