世界微尘里,吾宁爱与憎
如何编写一个完美的equals()方法
如何编写一个完美的equals()方法

如何编写一个完美的equals()方法

equals()语言规范

首先,我们要明确,怎样的equals方法才算是一个完美的equals方法

在Java语言规范中,要求equals()方法具有以下五种特性

  • 自反性,对于任何非空引用,x.equals(x)应该返回true
  • 对称性,对于任何引用x和y,当且仅当y.equals(x)返回true时,y.equals(x)才返回true
  • 传递性,对于任何引用x,y,y,如果x.equals(y)返回true,y.equals(z)返回true,那么x.equals(z)也应该返回true
  • 一致性,x.equals(y)在反复调用下,其结果应该保持不变
  • 对于任何非空引用x,x.equals(null)应该返回false

当你写出的equals函数满足以上五种特性时,就说明这个equals方法是个完美的equals()方法了

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注