代码
/**
* 该方法是用于相同对象不同属性值的合并,如果两个相同对象中同一属性都有值,
* 那么sourceBean中的值会覆盖tagetBean重点的值
* @param sourceBean
* @param targetBean
* @return
*/
@SuppressWarnings("unused")
public static Object combineSydwCore(Object sourceBean, Object targetBean) {
Class sourceBeanClass = sourceBean.getClass();
Class targetBeanClass = targetBean.getClass();
Field[] sourceFields = sourceBeanClass.getDeclaredFields();
Field[] targetFields = sourceBeanClass.getDeclaredFields();
for (int i = 0; i < sourceFields.length; i++) {
Field sourceField = sourceFields[i];
Field targetField = targetFields[i];
sourceField.setAccessible(true);
targetField.setAccessible(true);
//过滤静态属性
if(Modifier.isStatic(sourceField.getModifiers())){
continue;
}
try {
if (!(sourceField.get(sourceBean) == null)) {
targetField.set(targetBean, sourceField.get(sourceBean));
}
} catch (Exception e) {
e.printStackTrace();
}
}
return targetBean;
}