为什么要写这段代码?
"name".equals(person.getName());
优于
person.getName().equals("name");
"name".equals(person.getName());
优于
person.getName().equals("name");
我更喜欢使用Yoda表达式"name".equals(person.getName());
,因为这意味着您不需要检查person.getName()
是否为null
。 这样可以节省一些打字时间,而且一旦熟悉了,理解起来也更清晰。
但是在您的情况下,您仍需要检查person
是否不为null
。
"name"
永远不可能为null
。"name".equals(null)
是有效的并且会返回false,而
String personName = null;
personName.equals("name");
将会抛出一个NullPointerException
"name".equals(person.getName());
这段代码将避免空指针异常。
"name"
永远不会为空。 - zecperson.getName()
可能会返回null
,但是忽略一个null
值是否比抛出异常更好还有争议。 - Peter LawreygetName
可能返回 null。至少,您需要为 person 和 getName() 包括一个空值检查(除非您有其他机制保证后者永远不会为 null)。 - kolossus