Java equals()的重写规则

重写equals()方法需要满足五大性质:

自反性。对于任何非null的引用值x,x.equals(x)应返回true。

对称性。对于任何非null的引用值x与y,当且仅当:y.equals(x)返回true时,x.equals(y)才返回true。

传递性。对于任何非null的引用值x、y与z,如果y.equals(x)返回true,y.equals(z)返回true,那么x.equals(z)也应返回true。

一致性。对于任何非null的引用值x与y,假设对象上equals比较中的信息没有被修改,则多次调用x.equals(y)始终返回true或者始终返回false。

非空性。对于任何非空引用值x,x.equals(null)应返回false。

另外,当重写equals方法时,同时也要重写hashCode方法。

参考:https://blog.csdn.net/defineshan/article/details/52277083

发布了84 篇原创文章 · 获赞 65 · 访问量 4万+

猜你喜欢

转载自blog.csdn.net/qq_42451835/article/details/104246846