请查看 Joshua Bloch 的《Effective Java》的链接。在第二段中,作者说:
The class is private or package-private, and you are certain that its equals method will never be invoked. Arguably, the
equals
method should be overridden under these circumstances, in case it is accidentally invoked:
@Override public boolean equals(Object o) { throw new AssertionError(); // Method is never called }
请解释一下这个问题。我对作者使用“private class”的术语感到困惑,为什么需要覆盖equals方法,当我们可以确定它不会被调用时。
请解释一下这个问题。我对作者使用“private class”的术语感到困惑,为什么需要覆盖equals方法,当我们可以确定它不会被调用时。
equals
方法,因为你可能忘记了不应该这样做。特别是如果你最后一次编辑该类是几个月前的事情。 - Tom