我看到 Guava 有 isNullOrEmpty 字符串实用方法
Strings.isNullOrEmpty(str)
我们有类似的列表吗?就像是
Lists.isNullOrEmpty(list)
这应该相当于
list == null || list.isEmpty()
另外,我们有类似的数组吗?就像是
Arrays.isNullOrEmpty(arr)
这应该相当于
arr == null || arr.length == 0
不,这种方法在 Guava 中不存在,实际上在我们的“想法墓地”中。
我们不认为“是否为 null 或为空”是您真正想要询问集合的问题。
如果一个集合可能为 null,并且 null 应被视为与空相同,那么请预先消除所有歧义,如下所示:
Set<Foo> foos = NaughtyClass.getFoos();
if (foos == null) {
foos = ImmutableSet.of();
}
或者像这样(如果你愿意的话):
Set<Foo> foos = MoreObjects.firstNonNull(
NaughtyClass.getFoos(), ImmutableSet.<Foo>of());
之后,您可以使用.isEmpty()
像平常一样。在调用顽皮的 API 后立即执行此操作,您就可以将奇怪的事情抛在脑后,而不是让它无限期地继续下去。
如果“null 真正意味着空集合”没有返回给您,而是传递给您,那么您的工作很简单:只需让NullPointerException
被抛出,并让那个来电者恢复正常。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)