是否有不允许向其添加 null 的标准 Java List 实现?

新手上路,请多包涵

假设我有一个 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 许可协议

阅读 778
1 个回答

当心——这里的几个答案声称可以通过包装列表并签入 addaddAll 来解决你的问题,但他们忘记了你也可以添加到 List 通过其 listIterator 。获得正确的约束列表具有挑战性,这就是 Guava Constraints.constrainedList 为你做的原因。

但在查看之前,首先考虑您是否只需要一个 不可变 列表,在这种情况下,Guava 的 ImmutableList 无论如何都会为您进行空值检查。如果您可以改用 JDK 的一种 Queue 实现,那也可以。

(null-hostile 集合的好列表: https ://github.com/google/guava/wiki/LivingWithNullHostileCollections)

原文由 Kevin Bourrillion 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题