我在面试中被问到这个问题。以下哪一项更适合使用
MyInput.equals("Something"); 或
"Something".equals(MyInput);谢谢
发布于 2011-04-19 13:46:14
我会去找
"Something".equals(MyInput);在这种情况下,如果MyInput为null,则不会抛出NullPointerException
在这里,我们确信equals()要调用的对象是NOT NULL。
如果你期望你的代码中的NullPointerException做出一些决定或者抛出/包装它,那么首先去做。
不会对性能造成影响
发布于 2011-04-19 13:56:45
做一个逆向投资者……:)
如果MyInput为null,第一行可能会崩溃,但这只是程序员(通常带有C语言的后遗症)在不想断言'MyInput‘可以为null时使用的代码方便。
如果使用第二个选项,则此行可能不会导致NullPointerException,但以下几行可能会。
我相信最好知道变量的可能状态,而不是依赖一些代码构造来放松你的良知。
发布于 2011-04-19 13:49:07
如果MyInput为null,则前者将引发一个NullPointerException,而后者将仅返回false,因此在某些情况下,后者可能更可取(如果您不希望MyInput为空并且希望快速失败,则可能是前者)。
https://stackoverflow.com/questions/5712100
复制相似问题