空值判斷的測試代碼如下:
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;
}