对于equals需要满足的几个条件:
- 自反性、
- 对称性、
- 传递性、
- 一致性、
- null总是不等
作者给出了几点建议:
1.使用 == 检查“参数是不是这个对象的引用”; 2.使用instanceof操作符检查参数是否是正确的类型; 3.把参数转化为正确的类型; 4.对于每个关键字,检查其值(对于double和float采用 Float.compare和Double.compare方法) 5.检查自反对称传递性 6.总是覆盖hashCode 7.不要企图设计地过于智能 8.不要将equals声明中的Object对象转化为其他类型 |