1. 程式人生 > >java返回集合為null還是空集合

java返回集合為null還是空集合

個人認為在自己寫介面時,需要返回集合時返回一個空集合,比如mybatis查詢如果返回一個集合,結果為空時也會返回一個空集合而不是null。

那麼這樣有什麼好處呢?最大的好處就是呼叫方不用在判斷是否為null,可以直接用,因為不用拋空指標,當然這也有缺點。

如果返回Lists.newArrayList();或者new ArrayList();這會新建一個物件,而這個物件很可能是沒必要的,這樣白白浪費效能。

解決方法當然也有,可以用Collections.emptyList();這個方法返回一個空集合,並不會新建物件,而是返回

public static final List EMPTY_LIST = new EmptyList<>(); 

這個變數。

當然這也有缺點,如果呼叫方只是遍歷,這沒什麼不會報錯,但是如果要新增,刪除裡面的元素那就會報錯,

那麼你可能想為什麼,原因就是程式碼裡直接寫死了呼叫時報錯,那麼為什麼要這樣寫呢?

原因也很簡單,如果多個執行緒對這個集合增刪,那麼呼叫方就全亂了,所以採用了直接報錯,快速失敗的方法

來解決問題