如何动态合并Java对象

met*_*dos 5 java dynamic

public class MyClass{
   public String elem1;
   public int elem2;
   public MyType elem3;
.................
}

MyClass object1=new MyClass();
MyClass object2=new MyClass();
object1.elem1=...
object1.elem2=...
...
object2.elem1=...
object2.elem2=null
.....
Run Code Online (Sandbox Code Playgroud)

我想要的是类似的东西

object1.merge(object2);
Run Code Online (Sandbox Code Playgroud)

它将动态遍历MyClass上的所有成员并在每个成员上运行它

if(object1.elem != object2.elem && object2.elem!=null)
 object1.elem=object2.elem;
Run Code Online (Sandbox Code Playgroud)

Java中是否存在这样的机制?

Erh*_*mir 8

用反射.走过课堂.伪:

Field[] fields = aClass.getFields();
for (Field field : fields) {
     // get value
     Object value = field.get(objectInstance);
     // check the values are different, then update 
     field.set(objetInstance, value);    
}
Run Code Online (Sandbox Code Playgroud)

并匹配值.如果它们不同,则更新该值.