我在Github上浏览代码时发现有人使用这种方式来比较两个字符串。
if ("whatever".equals(theString))
普通的字符串比较方式和其他方法有什么区别?
if (theString.equals("whatever"))
那么上面的方法呢?
我不确定是否之前有类似的问题被问过,如果有的话,请见谅。
if ("whatever".equals(theString))
普通的字符串比较方式和其他方法有什么区别?
if (theString.equals("whatever"))
那么上面的方法呢?
我不确定是否之前有类似的问题被问过,如果有的话,请见谅。
if("无论什么".equals(theString))
的优势在于如果 theString
是null
,你不会遇到NullPointerException
。其余部分相同。
"whatever".equals(theString)
不会抛出NPE,但你可能认为一切都按预期工作。想象一下这样的情况:你没有初始化字符串并将其设置为null
,你的代码不会崩溃,条件将被评估为false。
如果null
表示某些事情,你应该检查它并适当地处理:
if (theString == null) {
// log, initialize or whatever
}
theString.equals("whatever")
可能会抛出 NullPointerException 异常。"whatever".equals(theString)
不会。 - Eran