什么时候在Java中使用引用相等与对象相等是合适的?

2022-05-16 00:00:00 object-reference equality equals java

我了解这两个术语之间的区别,以及如果您想要检查两个对象是否具有引用或相同的值,您将使用什么方法。我的问题是,与检查两个对象是否具有相同的内容或值(从来没有一次我必须检查两个对象是否具有相同的引用)相比,何时必须检查两个对象是否具有相同的引用?


解决方案

这并不是真正的"代替"相等性检查,但出于性能和空安全原因,您可以在执行相等性检查之前执行引用检查。

实际上,这就是调用Objects.equals(a,b)而不是a.equals(b)时发生的事情。

public static boolean equals(Object a, Object b) {
     return (a == b) || (a != null && a.equals(b));
}

相关文章