我正在执行UPDATE操作,以便将传入POJO中设置的所有non-null
属性都复制到另一个对象(相同类型)中,并且嵌套属性也会发生这种情况。
例如:
POJO:
public class Person {
private String homePhoneNumber;
private String officePhoneNumber;
private Address address;
public String getHomePhoneNumber() {
return homePhoneNumber;
}
// getter/setters
}
public class Address {
private String street;
private String houseNumber;
public String getStreet() {
return street;
}
// getter/setters
}
// Source
Person sourcePerson = new Person();
sourcePerson.setHomePhone("123");
Address address1 = new Address();
address1.setStreet("Street");
sourcePerson.setAddress(address1);
//Dest person
Person destPerson = new Person();
destPerson.setOfficePhone("456");
destPerson.setHomePhone("123");
Address address2 = new Address();
address2.setStreet("Street2");
address2.setHouseNumber("246");
destPerson.setAddress(address2);
BeanUtils.copyProperties(destPerson, sourcePerson);
因此,我想复制non-null
中设置的所有sourcePerson
属性,以复制到destPerson
中,即覆盖仅destperson
的那些属性, sourcePerson
已设置,其他属性保持不变。
BeeanUtils.copyProperties()不适用于嵌套属性。
是否有一种方法可以通过BeanUtils
来实现?