【发布时间】:2012-09-25 02:58:15
【问题描述】:
我想验证一个集合是否为空和null。谁能告诉我最佳做法。
目前,我正在检查如下:
if (null == sampleMap || sampleMap.isEmpty()) {
// do something
}
else {
// do something else
}
【问题讨论】:
-
除此之外,想想为什么你使用
null == sampleMap而不是sampleMap == null。大多数人发现后者更具可读性——前者是其他语言的遗留物。 -
顺便说一句,空集合是不好的。如果可能,请将其设为空集合。
See Effective Java: Item 43 - Return empty arrays or collections, not nulls. -
@JonSkeet 人们使用 null == sampleMap 以防他们写 = 而不是 ==。如果你使用 sampleMap == null,当你忘记一个 = 时,它会变成 sampleMap = null,这不会引发错误,因此以另一种方式编写它有助于开发人员看到它
-
@UriLoya:如果你用 Java 写
if (null = sampleMap),你会得到一个编译错误。这正是我第一条评论的重点。它的“原因”是特定于语言的,但尽管存在可读性损失,但已经传播到其他语言,因为人们没有考虑为什么他们这样做。 -
您可以使用 org.apache.commons.collections4.CollectionUtils 包中的 CollectionUtils 类。有很多实用方法可以查找空或 null。
标签: java collections