一、实现高质量equals方法的诀窍:
1、使用==比较对象的引用;
2、使用instanceof检查参数的类型;
3、把参数转换成正确的类型;
4、检查关键域是否与对象中对应的于匹配;
5、编写UT测试equals方法。
二、事实上,我们无法再扩展可实例化的类的同时,既增加新的值组件,同时保留equals约定,除非愿意放弃面向对象所带来的优势。不过,可以在一个抽象类的子类中增加新的值组件,而不违反equals约定,因为抽象类无法实例化。
三、覆盖equals方法总是要覆盖hashCode
四、相等的对象必须具有相等的散列码,但是不同的对象可以有相同的散列码;不要试图从散列码计算中排除掉一个对象的关键部分来提高性能。
网友评论