结论
等于 null 不能用
实验一
public static void abc(String a){
if (a.isEmpty()) System.out.println("empty");
if (a == "") System.out.println("==''==");
if (a == null) System.out.println("null");
}
@Test
public void test(){
String a = new String();
String b = null;
String c = "";
System.out.println("======= a ========");
abc(a);
System.out.println("======== b =======");
abc(b);
System.out.println("======= c =========");
abc(c);
}
结果运行到 abc(b)
时就报错了
于是
实验二
public static void ac(String a){
if (a.isEmpty()) System.out.println("empty");
if (a == "") System.out.println("==''==");
if (a == null) System.out.println("null");
}
public static void b(String a){
if (a == "") System.out.println("==''==");
if (a == null) System.out.println("null");
}
@Test
public void test(){
String a = new String();
String b = null;
String c = "";
System.out.println("======= a ========");
ac(a);
System.out.println("======== b =======");
b(b);
System.out.println("======= c =========");
ac(c);
}
运行结果如下:
显而易见, 等于 null 不能用
实验三【再次印证】
String name = request.getParameter("aaa");
System.out.println(name);
if (name.isEmpty()) System.out.println("empty");
if (name == "") System.out.println("==''==");
if (name == null) System.out.println("null");
【说明:当参数不存在是,name为null】
当 参数aaa
不存在时,同样报错java.lang.NullPointerException
当 参数aaa
存在时, 无论为空还是不为空,不会报错!
结论
等于 null 不能用 isEmpty