Java快速比较同一个类的不同实例字段值的异同

  • Post author:
  • Post category:java




一、使用场景

例如,有业务需求要记录某一个表单每次修改的操作记录,详细到每个字段的值有什么改变。



二、代码示例

类A定义了很多个属性。实例化出了A的两个对象B和C,并且B与C中的字段值有些相同有些不同。比较出B和C哪些字段值相同哪些不同。

Field[] fields = A.class.getDeclaredFields();
for (Field field : fields) {
    field.setAccessible(true);
    Object valueOfB = field.get(B);
    Object valueOfC = field.get(C);
    if (valueOfB.equals(valueOfC)) {
        System.out.println("属性" + field.getName() + "的值在B和C中相同,值为:" + valueOfB);
    } else {
        System.out.println("属性" + field.getName() + "的值在B和C中不同,值分别为:B=" + valueOfB + ",C=" + valueOfC);
    }
}



版权声明:本文为qq_37132495原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。