PropertyUtils类和 BeanUtils类的 copyProperties方法语法一致,功能也几乎一样。
它们的区别,很多人已经给出了很专业的归纳,今天我又多发现了一个,这个问题纠结了很久,分享出来供大家参考。
BeanUtils.copyProperties(A,B);
如果B中的Integer类型的数据是null的,那么通过这个方法复制给A后,这个null的Integer数据会变成0。
也就是它有自己的规则,如果发现Integer类型的数据如果是null的,它会自作多情的给个默认值!
这个自作多情是很让开发人员反感的!比如Integer类型的数据=null是一个逻辑业务,但是经过复制后之前的业务逻辑就不执行了!!!
推荐!PropertyUtils.copyProperties(A,B),但是如果数据类型里面有data类型的,建议用java.sql.Data。