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

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 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券