BeanUtils.copyProperties конвертирует целое число null в 0

Я заметил, что BeanUtils.copyProperties (dest, src) имеет странный побочный эффект. Все пустые целые числа (возможно, Long , Date и т. Д.) Преобразуются в 0 в обоих объектах: источнике (sic!) И месте назначения. Версия: commons-beanutils-1.7.0

javadoc:

Копирование значений свойств из исходного компонента в целевой компонент для всех случаев, когда имена свойств совпадают.

Например:

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

Фактическое изменение исходного объекта может вызывать серьезные ошибки. Как лучше всего сделать «настоящую» копию объекта с нулевым значением.

15
задан lukastymo 28 November 2011 в 12:44
поделиться