所以我在我的计算机科学课上做了一个作业,我差不多完成但是我遇到了代码问题。它工作正常,直到我达到equals方法。这是我们必须创建的名为Document的ArrayList对象的代码。问题是来自我的第85行代码的StackOverFlow错误,这是一个小方法:
public boolean equals(Document other) {
return this.equals(other);
}
有人知道这里有什么问题吗? 谢谢你的帮助。
答案 0 :(得分:1)
你的equals实现是错误的。以下是正确实施的示例:
@Override
public boolean equals(final Object o) {
if (!(o instanceof Document)) {
return false;
}
Document that = (Document) o;
return Objects.equals(title, that.title); // compare all necessary fields
}
答案 1 :(得分:0)
这是equals方法的错误实现。您应该比较Document对象的实例变量。
例如
class Document{
String docName; // initalised during constructor call
public boolean equals(Document other) {
return this.docName.equals(other.docName);
}
}