简单写了一个 大概差不多样子 把第二个对象的属性复制到第一个对象上
static void copy(Object o1, Object o2) throws Exception {
Field[] field = o1.getClass().getDeclaredFields();
Method[] mm = o1.getClass().getDeclaredMethods();
for(int j=0 ; j<field.length ; j++){
String name = field[j].getName();
String type = field[j].getGenericType().toString();
if(type.equals("class java.lang.String")){
Method m = o1.getClass().getMethod("get"+toUpperCaseFirstOne(name));
String value = (String) m.invoke(o1);
String value2 = (String) m.invoke(o2);
if(value == null && value2!=null){
m = o1.getClass().getMethod("set"+toUpperCaseFirstOne(name), String.class);
m.invoke(o1, value2);
}
} else if("int".equals(type)) {
Method m = o1.getClass().getMethod("get"+toUpperCaseFirstOne(name));
Integer value = (Integer) m.invoke(o1);
Integer value2 = (Integer) m.invoke(o2);
if(value == null){
m = o1.getClass().getMethod("set"+toUpperCaseFirstOne(name), Integer.class);
m.invoke(o1, value2);
}
}
}
}