在检查空字符串的代码中,程序员使用 equals()
像这样:
if ("".equals(name)) {
// some logic
}
为什么直接从字符串值执行?与此有什么区别;
if (name.equals("")) {
// some logic
}
两者都有相同的结果,但是第一个背后的想法是什么?
最佳答案
使用背后的想法;
"".equals(name)
""
永远不能为 null
,而 name
可以。 equals()
接受 null
作为参数,但尝试从 null
变量执行方法将导致 NullPointerException
.
所以这是避免这种可能的异常的一种简写方法。对于任何此类常量对象也是如此。
例如
final Integer CONSTANT_RATE = 123456;
....
if (CONSTANT_RATE.equals(someVariable)) { .. }
而不是做;
if (someVariable != null && someVariable.equals(CONSTANT_RATE)) { .. }
关于java - 为什么 equals() 中的顺序相反,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57283277/