【发布时间】:2011-06-22 00:14:15
【问题描述】:
假设我有一个List,我知道我永远不想在其中添加null。如果我在其中添加 null,则意味着我犯了一个错误。所以每次我否则我会打电话给list.add(item),我会打电话给if (item == null) throw SomeException(); else list.add(item);。是否有一个现有的 List 类(可能在 Apache Commons 或其他东西中)可以为我做这件事?
类似问题:Helper to remove null references in a Java List? 但我不想删除所有空值,我想确保它们一开始就不会被添加。
【问题讨论】:
-
你不能只是继承 List 类并添加你刚刚列出的功能吗?
-
这是一个非常定制的要求;
null是一个完全可以容纳在容器中的值(在大多数情况下)。所以你可能需要推出自己的包装器。 -
@Nick 我可以,但我必须覆盖(至少,在我的脑海中)
add、addAll,再加上一两个构造函数。这可能不会那么难,但我怀疑有人(Apache、Google ......)已经做到了,并且在某个地方发现了一个我可能会错过的微妙错误。 -
@Oli 好吧,如果集合不支持空值,Collections API 非常清楚地允许 Nullpointer 异常。很明显,API 会考虑这种情况并做出其他决定。
-
我碰巧发现了这个:kiwidoc.com/java/l/p/commons-collections/commons-collections/… 这并没有真正回答我原来的问题,但有类似的目的。
标签: java list collections null