【问题标题】:Apache Commons DiffBuilder, deep compareApache Commons DiffBuilder,深度比较
【发布时间】:2018-04-16 13:02:46
【问题描述】:

我们尝试在 3.7 版中使用 Appache commons DiffBuilderReflectionDiffBuilder 来比较两个复杂对象。

对于一个简单的对象,它工作得非常好,但我无法让它与属性一起工作,这些属性是其他复杂对象的列表,可以再次包含一个复杂的对象。

让我更好地解释一下,如果我们有这个对象的例子(为了简单起见,我们将用一个 json 对象来表示它):

{
    "id": 1,
    "name": "Master1",
    "details": [{
        "id": 1,
        "name": "Master1.Detail1"
    }, {
        "id": 2,
        "name": "Master2.Detail2",
        "subDetail": [{
            "id1": 1,
            "name": "Master2.Detail2.SubDetail1"
        }]
    }]
}

在这种情况下,如果我们在 SubDetail1 中更改 name 并将旧对象与新对象进行比较,我们还需要通知 3 个复杂对象的第三级中的属性已更改。

Apaches 库可以做到这一点吗?它似乎不是开箱即用的?

【问题讨论】:

    标签: java apache compare diff


    【解决方案1】:

    在您的父 diff 方法中,您应该遍历您的集合并比较每个子实体并将所有差异附加到您的父 diff 结果对象中。

    【讨论】:

      猜你喜欢
      • 2016-11-18
      • 1970-01-01
      • 2012-02-13
      • 1970-01-01
      • 2016-12-28
      • 2021-11-11
      • 2012-03-26
      • 2011-05-27
      • 1970-01-01
      相关资源
      最近更新 更多