比较if:!string.equals(“”)vs!“”中的字符串.equals(string)

时间:2012-11-20 19:25:40

标签: java

  

可能重复:
  Difference between these two conditions?

我正在进行一些代码清理,NetBeans提出了改变建议

if(!billAddress1.equals(""))if (!"".equals(billAddress1))

两者之间有什么区别,以及使用建议版本优于原始版本的可读性的优势?

6 个答案:

答案 0 :(得分:7)

如果billAddress1.equals("")billAddress1,则{p> null将导致NullPointerException,"".equals(billAddress1)不会。

答案 1 :(得分:3)

// Could cause a NullPointerException if billAddress1 is null
if(!billAddress1.equals(""))

// Will not cause a NullPointerException if billAddress1 is null
if (!"".equals(billAddress1))

答案 2 :(得分:3)

!"".equals(billAddress1)永远不会导致NPE,因此通过允许摆脱原本需要的billAddress1 == null,它允许更紧凑的语法。

答案 3 :(得分:2)

如果值为null,后者不会导致Null指针异常。

答案 4 :(得分:2)

正如其他人指出的那样,一个人可以让你远离NPE。但是如果你确定它不会为null,那么检查字符串是否为空的更好方法是使用String.isEmpty()方法,这就是代码似乎试图做的事情。

答案 5 :(得分:1)

第一个有可能导致NullPointerException。