当前位置:  开发笔记 > 编程语言 > 正文

Objects.equals和Object.equals

如何解决《Objects.equals和Object.equals》经验,为你挑选了1个好方法。

我尝试创建一个允许Java中类似元组的结构的元组类.元组中两个元素的一般类型分别是X和Y. 我试图覆盖这个类的正确等于.

事实是,我知道Object.equals是默认的,它仍然会根据像"=="这样的引用进行比较,所以我不太确定我可以使用它.我查看了对象,其中有一个equals().这个仍然可以在引用上进行比较,还是在内容上进行比较?

快速想象返回语句如下:

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

prev和next的元素是元组的元素.这会有用吗?



1> Bohemian..:

不同之处在于Objects.equals()认为两个零点是"相等的".伪代码是:

    如果两个参数都是null相同的对象,则返回true

    如果第一个参数是nullreturnfalse

    返回将第二个参数传递给第一个参数的equals()方法的结果

这意味着它是"null safe"(equals()尽管第一个参数的方法是非null安全的实现).


第2点记录错误.代码是:`return(a == b)|| (a!= null && a.equals(b));`所以它实际上是*如果**first**参数是`null`则返回`false`*.如果第二个是`null`,则使用`null`参数调用`equals`.如果你已经实现了`equals`错误,那可能会引起人们的兴趣,这取决于`Objects.equals`一个null,就像我一样.
推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有