第8条 覆盖equals时请遵守通用约定
不覆盖equals
不覆盖equals的情况下,类的每个实例都与它自身相等,如果满足以下任何一个条件,就是所期望的结果:
类的每个实例本质上都是唯一的
不关心类是否提供了...) 对于任何非null的引用值x,x.equals(x)必须返回true
对称性(symmetric) 对于任何非null的引用值x和y,当且仅当y.equals(x)返回true时,x.equals(...对于任何非null的引用值,x,x.equals(null)必须返回false
感觉又回到了学数学交换律什么的的时候了~
有些类(如集合,HashMap)与equals方法息息相关,所以重写的时候要仔细小心...高质量的equals
ej对equals提了几点建议:
使用==操作符检查”参数是否为这个对象的引用” 如果是,则返回true....Object通用约定(在Object类中的注释即是):
在应用程序的执行期间,只要对象的equals方法的比较操作所用到的信息没有被修改,那么对这同一个对象调用多次,hashCode方法都必须始终如一地返回同一个整数