为什么这段代码
"name".equals(person.getName());
优于
person.getName().equals("name");
答案 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