当前位置: 首页 > 面试题库 >

Google Guava isNullOrEmpty的集合

益承颜
2023-03-14
问题内容

我看到番石榴对字符串有isNullOrEmpty实用程序方法

Strings.isNullOrEmpty(str)

列表是否有类似内容?就像是

Lists.isNullOrEmpty(list)

应该等于

list == null || list.isEmpty()

另外,我们对数组有类似的东西吗?就像是

Arrays.isNullOrEmpty(arr)

应该等于

arr == null || arr.length == 0

问题答案:

不,这种方法在番石榴中不存在,实际上在我们的“理想墓地”中。

我们不认为“ null或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时立即执行此操作,您已经将怪异现象抛在了身后,而不是让它无限期地继续下去。

而且,如果“空值实际上意味着空集合”没有返回给您,而是传递给了您,那么您的工作就很容易:只要丢掉一个NullPointerException,然后使调用者整形即可。



 类似资料:
  • 问题内容: 我一直遇到这个问题: 我想让hibernate管理一个表示集合集合的表。例如: 地图地图 套装清单 清单地图 例如,我希望能够代表这一点: 作为一个表: 没有自定义的hibernate代码似乎是不可能的,我不介意。但是我希望有人对自定义代码的外观有所指导。 我应该扩展AbstractPersistentCollection吗? CompositeUserType? 可以管理多个表是否正

  • 问题内容: 我希望将空结果集的总计设置为0。我尝试了以下方法: 结果: 子问题:上面的工作在Oracle中行不通吗? 问题答案: 在有关聚合函数的文档页面中: 应该注意的是,除了这些函数, 当没有选择任何行时 ,这些函数将 返回空值 。特别是,没有行返回空值,而不是预期的零值。必要时,该函数可用于将零替换为null。 所以,如果你想保证返回的值,适用于 结果 的,而不是它的参数: 至于Oracle

  • 我有一个关于使用“永远”类型的穷举开关/情况的问题。 比如说,我有一组字符串:{a,B}(字符串可以是任意长的单词,而且集合本身可能非常大),对于每个子集(比如{},{a,B}),我想创建一个函数:show:Set= 预发伪代码: 是否有可能在编译时保证show函数中包含所有可能的子集?所以把C加到集合{A,B,C}需要我扩充show函数吗?并为{C}、{A,C}、{B,C}和{A,B,C}添加案

  • 在连续情景中,我们不得不处理函数的集合和函数的系集。由函数集的名字可以看出,它就是一组函数,通常是一个变量——时间的函数。为描述函数集,我们可以给出集合中各种函数的显式表达式,也可以给出只有集合中的函数才拥有的性质。下面是一些示例: 由以下函数组成的集合: 。 的每个具体值确定了集合中的一个特定函数。 一个由时间函数组成的集合,其中包含频率不超过W周期/秒的所有时间函数。 一个由带宽局限于W、幅度

  • 本文向大家介绍JS实现的集合去重,交集,并集,差集功能示例,包括了JS实现的集合去重,交集,并集,差集功能示例的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了JS实现的集合去重,交集,并集,差集功能。分享给大家供大家参考,具体如下: 1. js 实现数组的集合运算 为了方便测试我们这里使用nodejs,代码如set_operation.js 2. 测试 我们这里使用nodejs来测试 测试

  • 本文向大家介绍Java中的集合与集合之间的区别,包括了Java中的集合与集合之间的区别的使用技巧和注意事项,需要的朋友参考一下 Java收集框架用于操纵对象的收集。收集框架包含多个包装器类,便利类,用于传统实现的类,例如vector和Hashtable,收集接口等。     集合是Java集合框架中的接口。它分为两部分- Java util集合-它包含诸如Set,queue,List等的类。 Ja

  • 我有以下功能用于统一多个集合(包括重复元素): 如果集合的交集具有类似签名的函数(使用类型相等),那就太好了。例如: 我找到了一个相交函数的实现,但它不使用流: 是否有任何方法可以利用流实现类似于unify函数的功能?我在java8/StreamAPI方面没有太多经验,因为一些建议会非常有用。

  • sdiff key1 key2...keyN 返回所有给定key的差集 sdiffstore dstkey key1...keyN 同sdiff,并同时保存差集到dstkey下