集合爲NULL與集合長度爲零的區別

在工作中經常會見到類似這樣的if條件:
List emps = new ArrayList();
if(emps!=null && emps.size()!=0){
//此處代碼省略…
}
經測試,二者的確是不同的.如下代碼:
(1)聲明一個集合,但不賦值:

public class T3 {
    public static void main(String[] args) {
        List emps = new ArrayList();
        System.out.println("emps is null? " + (emps==null));
        System.out.println("emps的長度:"+emps.size());
        if(emps!=null && emps.size()==0){
            System.out.println("集合不爲NUll,但是集合的長度卻爲零.");
        }
    }
}

打印結果:
這裏寫圖片描述

(2)聲明一個集合 t ,直接賦值爲null

public class T3 {
    public static void main(String[] args) {
        List emps = new ArrayList();
        System.out.println("emps is null? " + (emps==null));
        System.out.println("emps的長度:"+emps.size());
        if(emps!=null && emps.size()==0){
            System.out.println("集合不爲NUll,但是集合的長度卻爲零.");
        }
        List t = null;
        System.out.println("t is null? " + (t==null));
        System.out.println("t的長度:"+t.size());
    }
}

程序運行結果:
這裏寫圖片描述
因爲t爲Null,是點不出size()方法的.

所以一般先判斷對象是否爲NULL,如果不是再去判斷其長度是否爲零,進一步的做邏輯判斷.

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章