我看到Guava有针对字符串的isNullOrEmpty实用方法
Strings.isNullOrEmpty(str)
Run Code Online (Sandbox Code Playgroud)
我们对列表有什么相似之处吗?就像是
Lists.isNullOrEmpty(list)
Run Code Online (Sandbox Code Playgroud)
这相当于
list == null || list.isEmpty()
Run Code Online (Sandbox Code Playgroud)
另外,我们对阵列有什么相似之处吗?就像是
Arrays.isNullOrEmpty(arr)
Run Code Online (Sandbox Code Playgroud)
这相当于
arr == null || arr.length == 0
Run Code Online (Sandbox Code Playgroud)
Kev*_*ion 141
不,这种方法在番石榴中不存在,实际上在我们的"思想墓地"中.
我们不相信"空或空"是一个你真正想要询问集合的问题.
如果一个集合可能为null,并且null应该被视为空,那么就预先解决所有这些歧义,如下所示:
Set<Foo> foos = NaughtyClass.getFoos();
if (foos == null) {
foos = ImmutableSet.of();
}
Run Code Online (Sandbox Code Playgroud)
或者像这样(如果你愿意):
Set<Foo> foos = MoreObjects.firstNonNull(
NaughtyClass.getFoos(), ImmutableSet.<Foo>of());
Run Code Online (Sandbox Code Playgroud)
在那之后,你可以像平常一样使用.isEmpty().在调用淘气的API时立即执行此操作,并且您已经将这种奇怪的东西放在身后,而不是让它无限期地继续下去.
如果"null真正意味着空集"并没有归还给你,而是传递给你,那么你的工作很简单:只需NullPointerException抛出一个,然后让调用者变形.
Ray*_*Ray 37
在整个番石榴中你会发现的一件事是它们往往对nulls 非常反对.作者希望阻止您null尽可能多地使用,并提供实用方法以使其更容易使用null将对此目的起反作用.
如果你想使用Guava的范例,请考虑这个集合(或数组)的来源是否真的应该选择返回null.如果没有,请考虑标记它@NonNull并返回空集合而不是null.或者作为期望无null值列表的函数的参数,考虑使用Preconditions.checkNotNull,如果a null(意外地)传入则抛出异常.
如果null真的是合法的,list == null || list.isEmpty()那就不那么难了.
Spring Framework有专门的util类调用CollectionUtils.你正在寻找的方法是:org.springframework.util.CollectionUtils.isEmpty.对于null和空集合,它返回true.
对于数组,有一种org.springframework.util.ObjectUtils.isEmpty方法表现得非常相似.
| 归档时间: |
|
| 查看次数: |
72093 次 |
| 最近记录: |