【发布时间】:2012-11-30 10:37:33
【问题描述】:
在 Java 集合上执行 null-safe contains 的最佳方法是什么?
换句话说 -
if (collection != null && collection.contains(x))
?
我希望 Apache commons-collections 有类似 CollectionUtils.contains(collection, x) 的东西,如果集合为 null,它只会返回 false,就像 size() 一样,它将 null 视为空集合。
但是,似乎没有这样的事情 - 我只是错过了吗?
【问题讨论】:
-
collection != null && collection.contains(x)有什么问题?简单且无外部依赖! -
@AbhinavSarkar:这就是我的想法!
-
这是一个有点相关的帖子,由不想一直检查 null 的人写的:stackoverflow.com/questions/271526/…
-
请注意,如果
x为空,则存在更大的问题。即使您检查了collection不为空,也有一些类型的集合(例如没有自己的Comparator的TreeSet)collection.contains(null)会抛出NullPointerException,您会在其中真的希望它简单地返回false。我仍在寻找一种安全的方式来执行collection.contains(x),而无需明确捕获此异常。
标签: java collections apache-commons-collection