前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >程序员天天敲的代码:两对象转换赋值「get到转换代码节省90%」

程序员天天敲的代码:两对象转换赋值「get到转换代码节省90%」

作者头像
lyb-geek
发布2019-12-25 18:00:15
1.3K1
发布2019-12-25 18:00:15
举报
文章被收录于专栏:Linyb极客之路Linyb极客之路

背景

java开发中一个对象的值赋值给另外一个对象,这样的例子太多,页面VO对象,需要转换为业务mode对象,系统中存在大量的VO、DTO、DO、PO,大量的转换代码需要程序员一行一行敲。为了程序员少加班,我推荐几个对象转换工具包。

学习目标

  • 能提高开发效率,早点下班
  • 自己能结合工具包定制适合自己项目的工具

代码案例

DTO(Data Transfer Object):数据传输对象

DO(Domain Object):领域对象

这两个对象有大量相同属性,注意有少数属性类型不一样sex和extInfo

DO对象用来mybatis入库的

---------程序员,一般把类型属性设计成枚举,更安全更易懂--------------------

类型属性枚举

----------------模拟数据转换过程,大家天天在写这样的代码,如果属性特别多,工作量不小------------------------

对象初始化

转换逻辑:利用org.springframework.beans.BeanUtils工具帮我们自动转换赋值-----spring的东西就是强大-----

转换

结果完美的转换了,DO就是我要存入数据库表的对象

输出结果

升级版案例

跟上面代码完成一样的功能,但转换逻辑优化了。

我这里是学的google的Guava工具实现 ,可以查看如下链接

https://www.toutiao.com/i6560157454552793608/

泛型加回调函数

具体底层转换工具包,大家根据项目情况合理选择

我还是推荐spring的工具包

-------apache的工具包有些坑,不推荐使用

转换逻辑:前面代码一样我就省略,这里是回调函数加泛型

转换优化

心得

  • 性能上cglib最好
  • 一般用spring就够了
  • apache的这个工具用些坑,具体我就不讲了。
  • 工具底层一般都是反射技术来实现的,如果对象复杂【比如DTO有继承关系】,可以自己写反射来实现。

作者:程序汪汪 来源:https://www.toutiao.com/i6567665328304685576/?group_id=6567665328304685576

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-12-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Linyb极客之路 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 学习目标
  • 代码案例
  • 升级版案例
  • 心得
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档