什么时候在Java中使用引用相等与对象相等是合适的?
我了解这两个术语之间的区别,以及如果您想要检查两个对象是否具有引用或相同的值,您将使用什么方法。我的问题是,与检查两个对象是否具有相同的内容或值(从来没有一次我必须检查两个对象是否具有相同的引用)相比,何时必须检查两个对象是否具有相同的引用?
解决方案
这并不是真正的"代替"相等性检查,但出于性能和空安全原因,您可以在执行相等性检查之前执行引用检查。
实际上,这就是调用Objects.equals(a,b)
而不是a.equals(b)
时发生的事情。
public static boolean equals(Object a, Object b) {
return (a == b) || (a != null && a.equals(b));
}
相关文章