当前位置:  开发笔记 > 编程语言 > 正文

Java Collections何时在使用Collections.addAll()时抛出NullPointerException

如何解决《JavaCollections何时在使用Collections.addAll()时抛出NullPointerException》经验,为你挑选了1个好方法。

在什么条件下该Collections.addAll()方法抛出NullPointerException?官方文件提到:

NullPointerException - 如果指定的集合包含null元素,并且此集合不允许null元素,或者指定的集合为null

如何确保此"集合不允许null元素"

public class CollectionImpl {

public void checkList(){

    List var1 = new ArrayList();
     var1.add("One");
     var1.add("Two");
     var1.add("Three");

     System.out.println("var1 : " + var1);

     try{
         if(Collections.addAll(var1,"Four" , "Five" , null , "1")){
            System.out.println("True"); 
         }
     }
     catch(NullPointerException e){
         System.out.println("Caught Null Pointer Exception" + e);
     }
     catch(IllegalArgumentException e){
         System.out.println("Caught IllegalArgument Exception" + e);
     }
     finally{
         System.out.println("var1 : " + var1);
     }
}

OUTPUT

var1 : [1, 2, null]
True
var1 : [1, 2, null, 4, 5, null, 6]

T.J. Crowder.. 7

Java Collections何时在使用Collections.addAll()时抛出NullPointerException

Collections.addAll文件告诉我们:

NullPointerException-如果elements包含一个或多个null值,并且c不允许null元件,或者如果c或者elementsnull

回答你的第二个问题:

如何确保此"集合不允许null元素"

通过参考您正在使用的课程的文档.在这种情况下(ArrayList),这是第二句话:

实现所有可选列表操作,并允许所有元素,包括null.

(我的重点.)

如果你不知道你正在处理什么类(你只是List从其他代码那里得到一个并且不知道/不知道它可能是什么类型的列表),你需要在接受它的方法中记录是否它需要支持null(因为List没有告诉你的东西;除了尝试添加一个并捕获异常,如果没有).



1> T.J. Crowder..:

Java Collections何时在使用Collections.addAll()时抛出NullPointerException

Collections.addAll文件告诉我们:

NullPointerException-如果elements包含一个或多个null值,并且c不允许null元件,或者如果c或者elementsnull

回答你的第二个问题:

如何确保此"集合不允许null元素"

通过参考您正在使用的课程的文档.在这种情况下(ArrayList),这是第二句话:

实现所有可选列表操作,并允许所有元素,包括null.

(我的重点.)

如果你不知道你正在处理什么类(你只是List从其他代码那里得到一个并且不知道/不知道它可能是什么类型的列表),你需要在接受它的方法中记录是否它需要支持null(因为List没有告诉你的东西;除了尝试添加一个并捕获异常,如果没有).

推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有