用hibernate做查詢時,返回壹個List對象,要判斷這個list是否為空,我是用的“==null”來判斷的,結果竟然不對,我以為這是hibernate對ArrayList又做了壹次封裝,但我通過讀源碼發現這是jdk API原有的特性。
public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];
}
public ArrayList() {
this(10);
}
通過以上源代碼可以看出,new ArrayList()的時候,默認分配了10個null對象,顯然再用“==null”這種方法就不能判斷了,因此可以通過size()==0或者isEmpty()這兩種方式來判斷,其實isEmpty就是通過size來判斷的。