在比较对象时,首先使用变量和在结尾使用变量之间的区别?

时间:2017-02-18 09:15:42

标签: java nullpointerexception null equals

我在许多地方看到,首先使用常量值,然后使用变量,例如(" ram")。equals(a),在很多地方我都有看到变量首先被使用,然后是他们想要比较的常数值,例如 a.equals(" ram")

a.equals(" ram")和(" ram")之间有什么区别.equals(a)? 哪一个更好用,为什么?

2 个答案:

答案 0 :(得分:3)

在允许变量a null的情况下,第一种样式更安全,因为您可以跳过null检查。

写作时

if (a.equals("ram")) { ... }

您必须确保a不是null以避免空指针异常。这不是

所必需的
if ("ram".equals(a)) { ... }

因为需要equals()方法来处理null参数而不抛出异常:

  

对于任何非空引用值xx.equals(null)应返回false

答案 1 :(得分:0)

(“ram”)。等于(a)更好。即使a为null,代码也永远不会中断。 将我们从空指针异常中保存起来。