首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >采访: Java等于

采访: Java等于
EN

Stack Overflow用户
提问于 2011-04-19 13:44:25
回答 7查看 4.3K关注 0票数 39

我在面试中被问到这个问题。以下哪一项更适合使用

代码语言:javascript
复制
 MyInput.equals("Something");   

代码语言:javascript
复制
"Something".equals(MyInput);

谢谢

EN

回答 7

Stack Overflow用户

回答已采纳

发布于 2011-04-19 13:46:14

我会去找

代码语言:javascript
复制
"Something".equals(MyInput);

在这种情况下,如果MyInput为null,则不会抛出NullPointerException

在这里,我们确信equals()要调用的对象是NOT NULL

如果你期望你的代码中的NullPointerException做出一些决定或者抛出/包装它,那么首先去做。

不会对性能造成影响

票数 62
EN

Stack Overflow用户

发布于 2011-04-19 13:56:45

做一个逆向投资者……:)

如果MyInput为null,第一行可能会崩溃,但这只是程序员(通常带有C语言的后遗症)在不想断言'MyInput‘可以为null时使用的代码方便。

如果使用第二个选项,则此行可能不会导致NullPointerException,但以下几行可能会。

我相信最好知道变量的可能状态,而不是依赖一些代码构造来放松你的良知。

票数 21
EN

Stack Overflow用户

发布于 2011-04-19 13:49:07

如果MyInputnull,则前者将引发一个NullPointerException,而后者将仅返回false,因此在某些情况下,后者可能更可取(如果您不希望MyInput为空并且希望快速失败,则可能是前者)。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5712100

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档