BeanUtils.copyProperties 将 Integer null 转换为 0
2022-09-03 00:07:32
我注意到BeanUtils.copyProperties(dest,src)有一个奇怪的副作用。所有 null(可能等)在两个对象中都转换为 0:源(原文如此!)和目标。版本: commons-beanutils-1.7.0Integers
Long
Date
javadoc:
对于属性名称相同的所有情况,将属性值从源 Bean 复制到目标 Bean。
例如:
class User {
Integer age = null;
// getters & setters
}
...
User userDest = new User();
User userSrc = new User();
BeanUtils.copyProperties(userDest, userSrc);
System.out.println(userDest.getAge()); // 0
System.out.println(userSrc.getAge()); // 0
源对象实际上被修改了,这可能非常错误。使用空值制作对象的“真实”副本的最佳解决方案是什么。