Objects.equals 和 Object.equals

2022-09-01 03:00:46

我尝试创建一个元组类,该类允许在Java中使用类似元组的结构。元组中两个元素的一般类型分别为 X 和 Y。我尝试覆盖此类的正确等于。

问题是,我知道Object.equals陷入默认值,它仍然基于“==”等引用进行比较,所以我不太确定我是否可以使用它。我研究了对象,其中有一个equals()。这个仍然在参考文献上比较,还是在内容上比较?

很快将 return 语句想象成这样:

return Objects.equals(compared.prev, this.prev) && Objects.equals(compared.next, this.next);

其中上一个和下一个是元组的元素。这行得通吗?


答案 1

不同之处在于认为两个 null 是“相等的”。伪代码是:Objects.equals()

  1. 如果两个参数是或同一对象,则返回nulltrue
  2. 如果返回第一个参数nullfalse
  3. 返回将第二个参数传递给第一个参数的方法的结果equals()

这意味着它是“空安全”(尽管第一个参数的方法的非空安全实现)。equals()


答案 2

this is literal code from java source: as you can see, @Agent_L is right这是来自java源代码的文字代码:如您所见,@Agent_L是正确的


推荐