null和""是不同的
public class StringTest { public static void main(String[] args) { String str = null; String str2 = ""; System.out.println("\"\" == str: " + "".equals(str)); System.out.println("\"\" == str2: " + "".equals(str2)); try { System.out.println(str.equals("")); } catch (NullPointerException e) { System.err.println("Caught Exception: " + e); } } }
运行结果如下:
"" == str: false "" == str2: true Caught Exception: java.lang.NullPointerException
在Java中String有很多特别的地方, 推荐比较字符串为空时使用这种方式:
"".equals(str)