面试:Java等于

面试中有人问我这个问题。以下哪个更适合使用


 MyInput.equals("Something");   

要么


"Something".equals(MyInput);

谢谢


慕勒3428872
浏览 326回答 3
3回答

青春有我

我会去"Something".equals(MyInput);在这种情况下,如果MyInput是null,则不会抛出NullPointerException在这里,我们确定equals()要调用的对象是NOT NULL。并且,如果您希望NullPointerException代码做出一些决定或抛出/包装它,那么请首先进行。对性能没有影响

幕布斯7119047

成为逆势.... :)如果MyInput为null,则第一行可能会崩溃,但这只是为了方便代码的程序员(通常带有C宿醉)在不想断言“ MyInput”可以为null时使用。如果使用第二个选项,则此行可能不会导致NullPointerException,但以下几行可能会导致。我相信最好了解变量的可能状态,而不是依赖于一些可以简化您的良心的代码构造。

红颜莎娜

那么我们如何将整个代码上下颠倒地进行更改呢?那些首先喜欢常数的人,看到它们时会感觉如何?if ( 2 == i) 在我看来,隐藏NullPointerException永远不是好处,而是设计中的一个缺点。如果您从不期望NullPointerException却遇到了NullPointerException,那么您需要让应用程序崩溃,跟踪日志并查看发生这种情况的原因。您可能完全错过了一个商业案例:)如果您可以选择使用null参数,并且对单独处理它不感兴趣,则可以使用StringUtils.equals(...)之类的实用程序方法就是说,我绝不允许任何团队成员使用第二种形式,因为第二种形式不一致且不可读。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java