如何将两个java对象的内容合并为一个?如果内容相同则应覆盖,如果内容不同,则应更新新内容。例如我有以下架构:
class A {
String id;
String response;
List<XYZ> slots;
}
XYZ还包含一些数据和列表。现在,如果我得到两个不同的A对象,其中包含不同的槽值。我怎样才能将它们组合成一个?即使它结合但不允许重复。
答案 0 :(得分:0)
在XYZ类中,您可以使用自己的逻辑覆盖equals方法来比较两个XYZ对象。
@Override
public boolean equals(Object obj) {
if(obj instanceof XYZ)
{
XYZ objXYZ = (XYZ) obj;
//here u can write your own logic to compare two XYZ objects and return true if satisfied else return false
return this.id == objXYZ.id;
}
else
return false;
}
然后您可以使用contains方法检查列表,同时将其添加到列表中。
if(!slots.contains(newXYZ))
slots.add(newXYZ)