首页 > 代码库 > 24、覆盖equals时请遵守通用约定
24、覆盖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时请遵守通用约定
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。