/**
* 获取两个对象同名属性内容不相同的列表
* @param class1 对象1
* @param class2 对象2
* @return
* @throws ClassNotFoundException
* @throws IllegalAccessException
*/
public static List> compareTwoClass(Object class1,Object class2) throws ClassNotFoundException, IllegalAccessException {
List> list=new ArrayList>();
//获取对象的class
Class> clazz1 = class1.getClass();
Class> clazz2 = class2.getClass();
//获取对象的属性列表
Field[] field1 = clazz1.getDeclaredFields();
Field[] field2 = clazz2.getDeclaredFields();
//遍历属性列表field1
for(int i=0;i
//遍历属性列表field2
for(int j=0;j
//如果field1[i]属性名与field2[j]属性名内容相同
if(field1[i].getName().equals(field2[j].getName())){
if(field1[i].getName().equals(field2[j].getName())){
field1[i].setAccessible(true);
field2[j].setAccessible(true);
//如果field1[i]属性值与field2[j]属性值内容不相同
if (!compareTwo(field1[i].get(class1), field2[j].get(class2))){
Map map2=new HashMap();
map2.put("name",field1[i].getName());
map2.put("old",field1[i].get(class1));
map2.put("new",field2[j].get(class2));
list.add(map2);
}
break;
}
}}
}
return list;
}