public static Boolean compareObjects(Object oldObj, Object newObj)  {
        if (MD5Utils.encodeHexString(JsonUtil.toJson(oldObj).getBytes(StandardCharsets.UTF_8))
                .equals(MD5Utils.encodeHexString(JsonUtil.toJson(newObj).getBytes(StandardCharsets.UTF_8)))) {
            return Boolean.FALSE;
        }
        Field[] fields = oldObj.getClass().getDeclaredFields();
        Class<?> clazz2 = newObj.getClass();
        Boolean resultFlag = Boolean.FALSE;
        try {
            int i = 1;
            for (Field field : fields) {
                ReflectionUtils.makeAccessible(field);
                Field secondField = clazz2.getDeclaredField(field.getName());
                ReflectionUtils.makeAccessible(secondField);
                Object oldVal = field.get(oldObj);
                Object newVal = secondField.get(newObj);
                if (!Objects.equals(oldVal, newVal)) {
                    // todo 差异
                }
            }
        } catch (Exception e) {
            log.error("字段比对异常", e);
        }
        return resultFlag;
    }
Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐