我正在进行一些代码清理,NetBeans提出了改变建议
if(!billAddress1.equals(""))
至if (!"".equals(billAddress1))
。
两者之间有什么区别,以及使用建议版本优于原始版本的可读性的优势?
答案 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。