如果两个实体之间的字段绝大部分是一样的。我们一个一个字段的进行set、get进行操作,太过冗长。而且这种操作非常容易出错,因为对象的属性太多,有可能会漏掉一两个,而且肉眼很难察觉。另外如果后期增加一个字段,需要记得在set、get的逻辑中进行添加,可能出现遗漏修改的现象。这样我们就可以使用BeanUtils.copyProperties();
针对BeanUtils.copyProperties,Apache、spring都有。
值的注意的是Apache的方法经测试是有性能问题的。推荐使用spring的方法。
另外,Apache、spring的这两个方法的从方法签名上可以看出,这两个工具类的名称相同,方法名也相同,甚至连参数个数、类型、名称都相同。但是参数的位置是相反的。因此,如果你想更改的时候,千万要记得,将 target 和 source 两个参数也调换过来!
apache.commons.beanutils.BeanUtils.copyProperties(Object target, Object source);
org.springframework.beans.BeanUtils.copyProperties(Object source, Object target);