apache 关于对象数据的复制工具PropertyUtils类和 BeanUtils类的 copyProperties方法

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。

你可能感兴趣的:(java,apache,BeanUtils)