之前一直说"".equals(str)这种写法比str.equals("")好,没去注意为什么,今天看到同事审核代码的时候说"".equals(str)可以避免程序报空指针,于是写了个程序测试了一下,果然这样
public class EqualTest {
private String a;
public void getString1(){
if(a.equals("")){
System.out.println("a equals '' is ok" );
}
}
public void getString2(){
if("".equals(a)){
System.out.println("'' equals a is ok" );
}
}
public static void main(String[] args) {
new EqualTest().getString2();
new EqualTest().getString1();;
}
}
结果:
Exception in thread "main" java.lang.NullPointerException
at learningProject.EqualTest.getString1(EqualTest.java:6)
at learningProject.EqualTest.main(EqualTest.java:17)