是否存在扩展List的不允许null元素的本机JAVA集合类?

dcp*_*dcp 7 java nullpointerexception

根据文档,List.contains可以抛出NullPointerException这种情况:

"如果指定的元素为null,并且此列表不支持null元素(可选)."

我只是想到一个不允许空值的List实现,但我不知道.例如,我可以ArrayList<Double>,但它允许空值.

    List<Double> list = new ArrayList<Double>();
    if (list.contains(null)) { // this won't throw NPE            
    }
Run Code Online (Sandbox Code Playgroud)

那么这里的文档是指这个接口的自定义实现,还是有一些扩展的本地JAVA集合类List不允许null元素?我意识到异常是可选的,我只是想到一个可能发生这种情况的真实案例.

Chr*_*röm 5

它指的是自定义实现,直到其中一个Java List实现不允许为null,然后它也将引用它.


cor*_*iKa 5

并非List <...>的所有实现都允许元素为null.

一个例子是RoleList::add(role)在添加Null值时抛出异常.

本文档为您做好准备,鼓励您检查您正在使用的任何列表的文档,以确定是否存在问题,或者如果您无法检查它,请小心谨慎.追踪NPE并不好玩.了解文档(提供良好的文档)可以节省很多麻烦.