5 在重写equals方法时,需要遵循哪些约定,具体介绍一下?

取消

1个回答

匿名

重写equals方法时需要遵循通用约定:自反性、对称性、传递性、一致性.、非空性

1)自反性

对于任何非null的引用值x,x.equals(x)必须返回true。---这一点基本上不会有啥问题

2)对称性

对于任何非null的引用值x和y,当且仅当x.equals(y)为true时,y.equals(x)也为true。

3)传递性

对于任何非null的引用值x、y、z。如果x.equals(y)==true,y.equals(z)==true,那么x.equals(z)==true。

4) 一致性

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

5)非空性

所有比较的对象都不能为空。

  • 1 关注
  • 0 收藏,18040 浏览
  • 提出于 2020-01-15 15:45:57

相似问题