程序员、软件开发工程、计算机、编程、java开发、后端开发

实体对象间转换

一个规范的项目

代码中充满了VO、From、DTO、DO等等pojo类

这些类作用不一样但类里面的属性值往往一模一样

当属性非常多时,一个个set的确非常累人又耗时间

其实强大的Spring早为我们准备好了贴心工具

一行搞定以前甚至30行的代码量

例子

  • 一个DTO(接口定义对象一般用DTO)
985cfa23faa287524b5dc578d5ffec87.png
  • 一个From(前端入参定义From)
2ed2664240cfe43e89bb6a6b4682a74f.png
  • 初始化数据
a37893dd5dfbe69a9a6bc8c792bb5043.png
  • 转换代码就一行
org.springframework.beans.BeanUtils.copyPropertiesru入参、出参
d030ec5676ed6b0b3280fb0b14475c20.png

运行效果

  • 各种类型属性都成功赋值过来了
36e5abbe8afadde9297dad9307288899.png
757e415f7f466c039abb675668bee8aa.png

注意赋值失败情况

  • 如果属性名称不同就会赋值不了
9c0f737a3922f432ffeeaeaa4163b7c7.png
  • 如果类型不同,名称相同也是会赋值不了
2fa7b07bc84c6bf8905a750137774459.png

总结

  • 推荐用Spring的BeanUtils完成简单属性的赋值工作
  • 如果你的pojo类特别复杂,对象层级特别深,建议手动
  • BeanUtils工具底层用的是反射,如果你心疼那点性能就手动吧

程序员、软件开发工程、计算机、编程、java开发、后端开发

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐