【Effective Java 10.4】覆盖 equals 时请遵守通用约定 —— 一致性
equals
约定的第四个要求是:如果两个对象相等,它们必须始终保持相等,除非它们中有一个对象(或者两个都)被修改了。换句话说,可变对象在不同的时候可以与不同的对象相等,而不可变对象则不会这样。当你在写一个类的时候,应该仔细考虑它是否应该是不可变的。不论类是否是不可变的,都不要使equals方法依赖于不可靠的资源。
equals
约定的第四个要求是:如果两个对象相等,它们必须始终保持相等,除非它们中有一个对象(或者两个都)被修改了。换句话说,可变对象在不同的时候可以与不同的对象相等,而不可变对象则不会这样。当你在写一个类的时候,应该仔细考虑它是否应该是不可变的。不论类是否是不可变的,都不要使equals方法依赖于不可靠的资源。