我在许多地方看到,首先使用常量值,然后使用变量,例如(" ram")。equals(a),在很多地方我都有看到变量首先被使用,然后是他们想要比较的常数值,例如 a.equals(" ram")。
a.equals(" ram")和(" ram")之间有什么区别.equals(a)? 哪一个更好用,为什么?
答案 0 :(得分:3)
在允许变量a
null
的情况下,第一种样式更安全,因为您可以跳过null
检查。
写作时
if (a.equals("ram")) { ... }
您必须确保a
不是null
以避免空指针异常。这不是
if ("ram".equals(a)) { ... }
因为需要equals()
方法来处理null
参数而不抛出异常:
对于任何非空引用值
x
,x.equals(null)
应返回false
。
答案 1 :(得分:0)
(“ram”)。等于(a)更好。即使a为null,代码也永远不会中断。 将我们从空指针异常中保存起来。