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

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

依赖

BeanCopier支持两种方式拷贝:

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

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

简单拷贝:


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

结果

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

测试

结果

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

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


然后执行代码:


2.自己写映射

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


然后

然后 实现接口


测试


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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 在做业务的时候,为了隔离变化,我们会将DAO查询出来的DO和对前端提供的DTO隔离开来,它们的结构都是类似的。写很...
    Djbfifjd阅读 13,140评论 0 6
  • 表情是什么,我认为表情就是表现出来的情绪。表情可以传达很多信息。高兴了当然就笑了,难过就哭了。两者是相互影响密不可...
    Persistenc_6aea阅读 127,662评论 2 7
  • 16宿命:用概率思维提高你的胜算 以前的我是风险厌恶者,不喜欢去冒险,但是人生放弃了冒险,也就放弃了无数的可能。 ...
    yichen大刀阅读 11,311评论 0 4

友情链接更多精彩内容