空值判断的测试代码如下:
String str = new String();//
System.out.println("1=" + (str == null));
System.out.println("2=" + str.isEmpty());
System.out.println("3=" + str.equals(""));
str = "";//空字符串
System.out.println("11=" + (str == null));
System.out.println("22=" + str.isEmpty());
System.out.println("33=" + str.equals(""));
str = " ";//空格字符串
System.out.println("111=" + (str == null));
System.out.println("222=" + str.isEmpty());
System.out.println("333=" + str.equals(""));
str = null;//空值
System.out.println("1111=" + (str == null));
//System.out.println("2222=" + str.isEmpty());//运行该行报错
//System.out.println("3333=" + str.equals(""));//运行该行报错
输出结果如下:
1=false
2=true
3=true
11=false
22=true
33=true
111=false
222=false
333=false
1111=true
总结:
在判断一个对象是否为空时:
对于一个新的实例:可以用.isEmpty()来判断;
当对象是String时,.isEmpty()与.equals("")判断结果均为true,
对于其他对象则是.isEmpty()结果为true,.equals("")结果为false;
所以判断一个新的实例是否为空要用.isEmpty()来判断;
对于赋值为null时:只能用==null来判断(用.isEmpty()或者当String用.equals(""),都会报空指针错误);
对于String对象赋值为空字符串“”时,可以用.isEmpty()和.equals("")来判断,结果相同;
对于String对象赋值为空格字符串“ ”时,它不属于空值,因此用==null、.isEmpty()、.equals("")判断,结果都是false(也不会报错);
Java7 中JDBC:
public boolean isEmpty() {
return value.length == 0;
}