简单的equals方法中的堆栈溢出错误?(Eclipse)

时间:2017-03-24 12:45:43

标签: java stack-overflow

所以我在我的计算机科学课上做了一个作业,我差不多完成但是我遇到了代码问题。它工作正常,直到我达到equals方法。这是我们必须创建的名为Document的ArrayList对象的代码。问题是来自我的第85行代码的StackOverFlow错误,这是一个小方法:

public boolean equals(Document other) {
    return this.equals(other);
}

有人知道这里有什么问题吗? 谢谢你的帮助。

2 个答案:

答案 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);
}

}