替换Objects.equals .equals()()

Leviand:

我在写代码的时候的IntelliJ建议我上的修正:

objectOne.equals(objectTwo);

告诉我,在方法调用equals可能会产生历久弥新java.lang.NullPointerException,提出以溶液的东西,我不知道,的Objects.equals

Objects.equals(objectOne, objectTwo);

阅读文档我只是一个潜在的问题看,这是,如果objectOne == nullobjectTwo == null,那么结果是true

此时的问题是:我可以开始更换和使用随处可见这种方法来代替.equals这是一种安全的方法还是我失去了一些大的禁忌?

摆脱NPE是非常有吸引力的...谢谢

维克多:

没有防弹回答这个问题,因为这取决于程序的需求,以及应如何回答这个例外场景。这么说,我会说:

如果有一个空是一个程序员的错误(我的意思是什么,你绝不会希望你的算法内发生)我建议离开.equals方法作为空指针异常会出现,让你注意到了这个问题,我的意思是,一个程序员的错误(这些错误,我们不希望!这意味着,我们写坏的算法),你应该感谢报告它的应用程序(而不是愤怒的真正的客户端....)

但是,如果在另一方面你的应用程序可以工作为好,不考虑,作为一个progrmmer错误,那么使用的Object.Equals会更适合您的需求。

一般的智慧表明,异常应该在leats记录。

希望能帮助到你!

TD; DR;

试着去调查目前存在的各种异常情况。并非所有的例外是程序员的错误。

在java中,通常情况下,checked异常是所有这些事件,你可以预见,您可以编写代码应该能够处理。unchecked异常(那些所属的RuntimeException的家庭)的事件,你只是无法预料(如空指针异常),因此它是IMPOSIBLE来编写代码来处理事情,你不要指望(相反,你应该纠正已有的代码,不写新!)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章