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

equals方法的小结

时间:2016-04-29 11:46:20      阅读:161      评论:0      收藏:0      [点我收藏+]

标签:

尽管经常使用equals,也可能理解不一定神,最近又要使用Collections.sort看到了这些,总结的不错。

首先equals方法必须满足自反性、对称性、传递性和一致性。

自反性(x.equals(x)必须返回true)、

对称性(x.equals(y)返回true时,y.equals(x)也必须返回true)、

传递性(x.equals(y)和y.equals(z)都返回true时,x.equals(z)也必须返回true)

和一致性(当x和y引用的对象信息没有被修改时,多次调用x.equals(y)应该得到同样的返回值),

而且对于任何非null值的引用x,x.equals(null)必须返回false。

实现高质量的equals方法的诀窍包括:

1. 使用==操作符检查"参数是否为这个对象的引用";

2. 使用instanceof操作符检查"参数是否为正确的类型";

3. 对于类中的关键属性,检查参数传入对象的属性是否与之相匹配;

4. 编写完equals方法后,问自己它是否满足对称性、传递性、一致性;

5. 重写equals时总是要重写hashCode;

6. 不要将equals方法参数中的Object对象替换为其他的类型,在重写时不要忘掉@Override注解(可以不写,但写了利大于弊)。

 我只是大自然的搬运工。打个小广告,销售儿童早教产品,为了娃买套吧,哈哈。http://yandz.com/mr/ar.html

equals方法的小结

标签:

原文地址:http://www.cnblogs.com/navigate/p/5445463.html

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