Tôi nhận thấy rằng BeanUtils.copyProperties (dest, src) có một hiệu ứng phụ lạ. Tất cả null Integers
(có thể là Long
, Date
v.v.) chuyển đổi thành 0 trong cả hai đối tượng: nguồn (sic!) Và đích. Version: commons-beanutils-1.7.0BeanUtils.copyProperties chuyển đổi số nguyên null thành 0
javadoc:
giá trị tài sản Sao chép từ đậu nguồn gốc đến bean điểm đến cho tất cả trường hợp tên thuộc tính đều giống nhau.
Ví dụ:
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
Nó có thể được rất nhiều lỗi mà đối tượng nguồn thực sự sửa đổi. Giải pháp tốt nhất để tạo bản sao "thực" của đối tượng với giá trị null là gì.
Phiên bản nào của beanUtils? Tôi đã có một số vấn đề với lỗi thời – Dewfy
commons-beanutils-1.7.0, được thêm vào bài đăng – smas