遍历类的属性和值,取两个类的同一属性的不同值。

来源:互联网 发布:蜂窝数据 3g 编辑:程序博客网 时间:2024/04/30 07:19
try {    Field[] fields = college.getClass().getDeclaredFields();    Field[] fieldsOld = collegeOld.getClass().getDeclaredFields();    for (int i = 0; i < fields.length; i++) {        Field field = fields[i];        field.setAccessible(true);        for (int j = 0; j < fieldsOld.length; j++) {// 遍历college和collegeOld,检查不相同的属性值            Field fieldOld = fieldsOld[j];            fieldOld.setAccessible(true);            if (field.getName().equals(fieldOld.getName())) {                if ((field.get(college) != null && !field.get(college).equals(fieldOld.get(collegeOld)))                        || (fieldOld.get(collegeOld) != null && !fieldOld.get(collegeOld).equals(field.get(college)))) {                    System.out.println("\"" + field.getName() + "\"" + "由[" + fieldOld.get(collegeOld) + "]更改为[" + field.get(college) + "];");                }            }        }    }} catch (IllegalArgumentException e) {    e.printStackTrace();} catch (IllegalAccessException e) {    e.printStackTrace();}
0 0