一、实现高质量equals方法的诀窍:
1、使用==比较对象的引用;
2、使用instanceof检查参数的类型;
3、把参数转换成正确的类型;
4、检查关键域是否与对象中对应的于匹配;
5、编写UT测试equals方法。
二、事实上,我们无法再扩展可实例化的类的同时,既增加新的值组件,同时保留equals约定,除非愿意放弃面向对象所带来的优势。不过,可以在一个抽象类的子类中增加新的值组件,而不违反equals约定,因为抽象类无法实例化。
三、覆盖equals方法总是要覆盖hashCode
四、相等的对象必须具有相等的散列码,但是不同的对象可以有相同的散列码;不要试图从散列码计算中排除掉一个对象的关键部分来提高性能。
关于重写equals和hashCode
最后编辑于 :
©著作权归作者所有,转载或内容合作请联系作者
- 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
- 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
- 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
推荐阅读更多精彩内容
- 转自:http://blog.csdn.net/jackfrued/article/details/4492194...