com.google.common.collect.Lists.addAll()空指针原因分析

代码示例

1  public static void main(String[] args) {
2         List<Integer> list = Lists.newArrayList();
3         List<Integer> listA = Lists.newArrayList();
4         listA.add(1);
5         List<Integer> listB = null;
6         list.addAll(listA);
7         list.addAll(listB);
8         System.out.println(JSON.toJSONString(list));
9     }

 

现象

第7行代码出现空指针

原因

通过查询源码发现  addAll方法 第二行 会出现空指针 

1  public boolean addAll(Collection<? extends E> c) {
2         Object[] a = c.toArray();
3         int numNew = a.length;
4         ensureCapacityInternal(size + numNew);  // Increments modCount
5         System.arraycopy(a, 0, elementData, size, numNew);
6         size += numNew;
7         return numNew != 0;
8     }

 

可见 c不能为空。

posted @ 2020-10-16 17:57  二叉树的博客  阅读(485)  评论(0编辑  收藏  举报