List.isEmpty()与CollectionUtils.isEmpty的区别

257 阅读1分钟

List.isEmpty()与CollectionUtils.isEmpty的区别

今天在codediff开发的代码的时候发现他用了List.isEmpty()与CollectionUtils.isEmpty,同一个list他用了这两种方法,但是之前确实我没接触过与CollectionUtils,所以就尝试了一下。发现当list为null的时候,list.isEmpty是会报空指针的,而CollectionUtils.isEmpty则不会

package com.daylywork.study;
​
import org.apache.commons.collections.CollectionUtils;
​
import java.util.ArrayList;
import java.util.List;
​
public class CollectionandListIsEmepty {
    public static void main(String[] args){
        List<String> listone = new ArrayList<String>();
        System.out.println("CollectionUtils:"+CollectionUtils.isEmpty(listone));
        System.out.println("List:"+listone.isEmpty());
        listone=null;
        System.out.println("CollectionUtils:"+CollectionUtils.isEmpty(listone));
        System.out.println("List:"+listone.isEmpty());
    }
}

结果

CollectionUtils:true
List:true
CollectionUtils:true
Exception in thread "main" java.lang.NullPointerException
  at com.daylywork.study.CollectionandListIsEmepty.main(CollectionandListIsEmepty.java:15)
​
Process finished with exit code 1