首页 > 其他 > 详细

BeanUtils.copyProperties缓解代码压力,释放双手

时间:2018-12-25 10:49:18      阅读:206      评论:0      收藏:0      [点我收藏+]

简单描述:之前在写代码的时候,经常把表单提交到后台的对象的参数,通过getter方法取出来,然后,再通过setter方法传递给需要的对象,代码中写了很多get set这种方法,后来听同事说,spring有一个BeanUtils.copyProperties()方法,可以代替我们手动来完成取值赋值的操作。我就试了试,发现果然可以。

BeanUtils.copyProperties(courseObj, courseVo);//把courseObj里的属性通过反射赋值给courseVo里相同的属性,不同的不赋值   前赋后

下边是spring 的BeanUtils中copyProperties方法的源码:

技术分享图片

上边注释的意思就是:复制源bean的参数值给目标bean    源Class和目标Class不必相互匹配甚至相互派生彼此(我的理解是不需要有父子继承关系),只要参数匹配就行。任何源bean暴露(拥有)的参数,而目标bean没有的参数都会被忽略。意思就是指复制那些两者都有的参数值给目标对象。这是一个很方便的方法,对于更复杂的转换需求,考虑使用一个完整的BeanWrapper。  嗯嗯,就这样啦。

真的是省了很多的这种代码 courseVo.setName(courseObj.getName());

另外 apache也提供有copyProperties()方法,apache的org.apache.commons.beanutils就提供了两种,一个是子包org.apache.commons.beanutils.BeanUtils---->copyProperties() 另一个是子包org.apache.commons.beanutils.PropertyUtils--->copyProperties(),不过需要注意的是这两个方法的参数和spring的参数位置是相反的    copyProperties(target, source)   

 

BeanUtils.copyProperties缓解代码压力,释放双手

原文:https://www.cnblogs.com/xuchao0506/p/10172357.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!