项目场景:
项目中需要对原生数据指定填报标准,然后使用填报标准来比对已经填报数据,并且清晰的表现出来填报符合标准和不符合标准的数据。
场景一(同源对象)
通过比对数据,突出表现数据的质量性
/**
* @description: 通过反射比对数据,装配结果
* @param obj1 //标椎对象
* @param obj2 // 填报数据对象
* @param noCompareColums ->不需要比对的字段
* @author yufuyang
* @date: 2022/4/22 09:32
*/
public PcBaseStandard reflectToObj(Object obj1, Object obj2,String [] noCompareColums) throws Exception {
Class clazz = obj1.getClass();
List<String> ignoreList = Lists.newArrayList();
//比对结果集合
Map<String,Object> result =new HashMap<>();
if(noCompareColums != null && noCompareColums.length >0){
//array 转list
ignoreList = Arrays.asList(noCompareColums);
}
//获取obj的属性
PropertyDescriptor[] descriptors = Introspector.getBeanInfo(clazz, Object.class).getPropertyDescriptors(); // 标准属性
if (obj1.getClass() == obj2.getClass()) {
Class clazz = obj1.getClass();
// 获取object的属性描述
PropertyDescriptor[] pds = Introspector.getBeanInfo(clazz,
Object.class