java实体对象合并方法
/**
* 合并对象
*
* @param sourceBean 数据源对象
* @param targetBean 需要得到的对象
* @return
*/
private static Object mergerData(Object sourceBean, Object targetBean) {
Field[] sourceFields = sourceBean.getClass().getDeclaredFields();
Field[] targetFields = targetBean.getClass().getDeclaredFields();
try {
for (int i = 0; i < sourceFields.length; i++) {
Field sourceField = sourceFields[i];
//这里遍历主要是为了适应双方对象属性顺序不一致的情况
for (int j = 0; j < targetFields.length; j++) {
Field targetField = targetFields[j];
if (sourceField.getName().equals(targetField.getName())) {
sourceField.setAccessible(true);
targetField.setAccessible(true);
if (!(sourceField.get(sourceBean) == null)) {
targetField.set(targetBean, sourceField.get(sourceBean));
}
}
}
}
} catch (IllegalArgumentException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
return targetBean;
}