Kotlin有哪些方法可以比较具有多个子对象的两个对象,并仅使用已更改的属性更新REST后端?
基本上,我们有一个具有许多子类的类(它们有自己的子类,依此类推),并且需要调用REST端点并发送Json来仅修补已更改的属性。
在我们的项目中,我们正在使用Gson的Retrofit。
答案 0 :(得分:0)
想象一下,你有以下对象树(伪代码):
A {
B {
C {
a: 15
b: 12
},
c: 4
},
d: 12
}
现在可能发生了一些变化,你需要检查一下。您的新JSON文件可能如下所示:
A {
B {
C {
a: 3
b: 12
},
c: 4
},
d: 12
}
我建议创建对象并让它们自己检查更改,因为如果有任何更改以及它们具有哪些属性,它们会知道最佳:
A:
Changes changes(oldA) {
Changes changes = b.changes(oldA.b)
changes.add(Changes(d, oldA.d))
return changes
}
这意味着您将拥有一个类更改,其行为类似于列表,并以JSON的形式提供更新,并且属于JSON的每个对象都将其值放在其中。
唯一留给你的是为这个列表考虑适当的JSON格式。