找出两个对象中值不同的字段
/**
* 判断两个对象中的值哪些修改了
* @param object1
* @param object2
* @param <T>
* @return
*/
public static <T> HashMap<String,Object> classIsEqual(T object1, T object2){
HashMap<String,Object> equalAttributeMap = new HashMap<>();
//获取对象的class
Class c1 = object1.getClass();
Class c2 = object2.getClass();
//获取该类中的全部属性
Field[] fields1 = c1.getDeclaredFields();
Object tempValue1,tempValue2;
int i;
for(i = 0;i < fields1.length;i++){
fields1[i].setAccessible(true);
try {
//获取两个对象该属性的值
tempValue1 = fields1[i].get(object1);
tempValue2 = fields1[i].get(object2);
//tempValue1为null,tempValue2不为null表明数据原来是空现在修改了
//tempValue1不为null,tempValue2不为null表明数据修改了
if(tempValue2 != null && !tempValue1.equals(tempValue2)){
equalAttributeMap.put(fields1[i].getName(),tempValue2);
}
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
return equalAttributeMap;
}