在Java中,为什么在某些集合实现中允许null,而在其他集合实现中不允许null



在Java中,通常,有些集合实现允许null元素,有些则不允许。这与垃圾收集有关吗?

从广义上讲,我认为null是否可以是集合的有效元素("逻辑上")基本上取决于实现。我真的怀疑这里面还有更多,尽管我可能被证明是错的。

文件中的相关部分:

一些集合实现对它们可能包含。例如,一些实现禁止null元素,并且有些元素对其元素的类型有限制。尝试添加不合格的元素会引发未检查的异常,通常为NullPointerException或ClassCastException。正在尝试查询不合格元素的存在可能引发异常,或者它可能只是返回false;一些实现将展示前者的行为,有些人会表现出后者。更一般地,尝试对完成的不合格元素执行操作不会导致将不合格的元素插入集合可能引发异常,也可能成功,选项为执行。此类例外在此接口的规范。

最新更新