Java String比较最佳实践

时间:2016-04-08 14:15:51

标签: java

为什么这段代码

"name".equals(person.getName());

优于

person.getName().equals("name");

3 个答案:

答案 0 :(得分:6)

我更喜欢 Yoda Expression "name".equals(person.getName());,因为这意味着您无需检查person.getName()是否为null。这样可以省去一些打字,一旦你习惯它就可以说清楚了。

虽然在您的情况下,您仍然需要检查person是否不是null

答案 1 :(得分:2)

"name".equals(person.getName());

此代码将避免Null指针异常。

答案 2 :(得分:0)

因为常量"name"永远不会是null

"name".equals(null)

有效且返回false,而

String personName = null;
personName.equals("name");

会抛出NullPointerException