最近使用copypropertis赋值比较顺手,但是会发现有时候的赋值数据会有出入
网上查了下原因,最后发现是导包的问题
一个是 org.springframework.beans.BeanUtils
另一个是org.apache.commons.beanutils.BeanUtils
例如,现在将obj1赋值给obj2
//使用spring包
BeanUtils.copyProperties(obj1,obj2)
//使用apache.common包
BeanUtils,copyProperties(obj2,obj1)
使用方法都是一样的,不过springframework包是将前者赋值给后者,apache.common包是对前者赋予后者的值;
在java开发手册中(泰山版的)有提及相关:
【强制】避免用 Apache Beanutils 进行属性的 copy。
说明:Apache BeanUtils 性能较差,可以使用其他方案比如 Spring BeanUtils, Cglib BeanCopier,注意
均是浅拷贝