如果它的值不为空,我想比较 2 个对象并使用第二个对象的值创建一个新对象。否则,第一个值应该被复制到创建的对象中。我的问题是我不知道如何设置要复制的值。我知道要获取我可以使用的属性的名称field.getName()
,但是如何在新对象上设置该属性?
例子:
Test t1 = new Test();
t1.name = "Maria";
t1.age = 30;
t1.street = "somewhere";
Test t2 = new Test();
t2.name = "Maria";
t2.age = ;
t2.street = "here and here";
Test resultIwant = new Test();
t2.name = "Maria";
t2.age = 30;
t2.street = "here and here";
代码:
Test resultIwant = new Test(t2);
for(Field field : t1.getClass().getDeclaredFields()) {
field.setAccessible(true);
Object value1= field.get(t1);
Object value2= field.get(t2);
if ((value2 == null && value1 == null) || (value2 == value1))
continue;
else {
if(value2 != null && value1 == null)
continue;
else if(value2 == null && value1 != null) {
resultIwant.set???? = value1; <----------- this is my problem
}
}
}