Me di cuenta de que BeanUtils.copyProperties (dest, src) tiene un extraño efecto secundario. Todos nulos Integers
(probablemente Long
, Date
etc.) se convierten a 0 en ambos objetos: fuente (sic!) Y destino. Versión: bienes comunes BeanUtils-1.7.0BeanUtils.copyProperties convertir Entero nulo en 0
javadoc:
valores de las propiedades de copia desde el grano de origen hasta el destino frijol para todos los casos en que los nombres de propiedad son los mismos.
Por ejemplo:
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
Puede ser muy Buggy que objeto de origen realmente se haya modificado. ¿Cuál es la mejor solución para hacer una copia "real" de un objeto con valor nulo?
¿Qué versión de BeanUtils? Tuve algunos problemas con obsoleto – Dewfy
commons-beanutils-1.7.0, agregado al post – smas