package com.hzrc.apply.utils;
import org.springframework.util.ObjectUtils;
import java.lang.reflect.Field;
/**
* @author SJT
* @Description: 合并两个对象的值,将第一个对象不为空的值赋值到目标对象
* @date 2022-04-26 09:47
*/
public class MergeObjectsUtil {
//合并两个对象的值
public static <T> T mergeObjects(T sourceBean, T targetBean) {
Class sourceBeanClass = sourceBean.getClass();
Class targetBeanClass = targetBean.getClass();
Field[] sourceFields = sourceBeanClass.getDeclaredFields();
Field[] targetFields = targetBeanClass.getDeclaredFields();
for (int i = 0; i < sourceFields.length; i++) {
Field sourceField = sourceFields[i];
Field targetField = targetFields[i];
sourceField.setAccessible(true);
targetField.setAccessible(true);
Class<?> type = sourceField.getType();
try {
if (!ObjectUtils.isEmpty(sourceField.get(sourceBean))) {
targetField.set(targetBean, sourceField.get(sourceBean));
}
} catch (IllegalArgumentException | IllegalAccessException e) {
e.printStackTrace();
}
}
return targetBean;
}
}
知是行之始,行是知之成