码迷,mamicode.com
首页 > 其他好文 > 详细

24、覆盖equals时请遵守通用约定

时间:2017-08-13 09:56:03      阅读:105      评论:0      收藏:0      [点我收藏+]

标签:问题   没有   自身   就会   信息   操作   覆盖   equals   避免   

覆盖equals方法看似很简单,但是有许多覆盖方式会导致错误,并且后果非常严重。最容易的避免这类问题的方法就是不覆盖equals方法,这种情况下,每个实例都与它自身相等。

如果你必须覆盖equals方法,那么请遵循:

1、自反性。对于任何非null的引用值x,x.equals(x)必须返回true;

2、对称性。对于任何非null的引用值x和y,当且进党y.equalts(x)返回true时,x.equals(y)必须返回true;

3、传递性。对于任何非null的引用值x和y和z,如果x.equals(y)为true,并且y.equals(z)为true,那么x.equals(z)也必须返回true;

4、一致性。对于任何非null的引用值x和y,只要equals的比较操作在对象中所用的信息没有被修改,多次调用x.equals(y)就会一致地返回true,或者一致地返回false。

24、覆盖equals时请遵守通用约定

标签:问题   没有   自身   就会   信息   操作   覆盖   equals   避免   

原文地址:http://www.cnblogs.com/lay2017/p/7352280.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!