Ho notato che BeanUtils.copyProperties (dest, src) ha uno strano effetto collaterale. Tutto null Integers
(probabilmente Long
, Date
ecc.) Convertire in 0 in entrambi gli oggetti: sorgente (sic!) E destinazione. Versione: Commons-beanutils-1.7.0BeanUtils.copyProperties converti Numero intero nullo a 0
javadoc:
valori proprietà Copia dall'origine fagiolo per il fagiolo di destinazione per tutti i casi in cui i nomi di proprietà sono gli stessi.
Ad esempio:
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
può essere molto buggy quell'oggetto sorgente viene effettivamente modificato. Qual è la soluzione migliore per rendere la copia "reale" dell'oggetto con valore null.
Quale versione di beanUtils? Ho avuto alcuni problemi con obsoleto – Dewfy
commons-beanutils-1.7.0, aggiunto al post – smas