假设我有一个 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? 但我不想删除所有空值,我想确保它们永远不会被添加到首位。
原文由 Tyler 发布,翻译遵循 CC BY-SA 4.0 许可协议
当心——这里的几个答案声称可以通过包装列表并签入
add
和addAll
来解决你的问题,但他们忘记了你也可以添加到List
通过其listIterator
。获得正确的约束列表具有挑战性,这就是 GuavaConstraints.constrainedList
为你做的原因。但在查看之前,首先考虑您是否只需要一个 不可变 列表,在这种情况下,Guava 的
ImmutableList
无论如何都会为您进行空值检查。如果您可以改用 JDK 的一种Queue
实现,那也可以。(null-hostile 集合的好列表: https ://github.com/google/guava/wiki/LivingWithNullHostileCollections)