gpt4 book ai didi

java - Apache Commons DiffBuilder,深度比较

转载 作者:行者123 更新时间:2023-12-05 08:08:27 28 4
gpt4 key购买 nike

我们尝试使用 Appache commons DiffBuilder 以及版本 3.7 中的 ReflectionDiffBuilder 来相互比较两个复杂对象。

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

让我更好地解释一下,如果我们有这个对象(为了简单起见,我们将用一个 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 库可以吗?好像不是开箱即用的?

最佳答案

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

关于java - Apache Commons DiffBuilder,深度比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49858025/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com