我有一个没有定义equal
函数的类。我需要比较这两个对象的列表。我目前的解决方案有一些样本:
def fromRecords = [new FooRecord(['ABC', 123L]), new FooRecord(['XYZ', 789L])]
storage.write(fromRecords)
def toRecords = storage.read()
for (int i = 0; i < outRecords.size(); i++) {
assert outRecords[i].contents == records[i].contents
}
是否有更优雅的常规方式来进行相同的比较?
答案 0 :(得分:2)
您不需要循环,列表上的equals
方法应该注意比较顺序和检查元素相等:
assert outRecords.contents == records.contents
==
运算符将导致调用outRecords.contents.equals(records.contents)
,这将检查List
相等(处理顺序和列表内容 - 逐个元素.equals
检查)。