首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >有没有JDK或Guava方法可以将null转换为空列表?

有没有JDK或Guava方法可以将null转换为空列表?
EN

Stack Overflow用户
提问于 2013-02-16 05:24:44
回答 5查看 11.9K关注 0票数 25

在JDK或Google Guava中有像这样的方法吗

代码语言:javascript
复制
public static <T> Collection<T> safe(Collection<T> collection) {
    if (collection == null) {
        return new ArrayList<>(0);
    } else {
        return collection;
    }
}

这使得在某些东西返回空列表时不会在增强的循环中崩溃变得很容易。

代码语言:javascript
复制
for (String string : CollectionUtils.safe(foo.canReturnANullListOfStrings())) {
    // do something
}

不会崩溃。

我环顾四周,但没有找到任何这样的方法,我想知道我是否遗漏了它,或者是否有一个原因,为什么这样一个方便的方法不方便,因此没有包括在内?

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2013-02-16 05:31:14

代码语言:javascript
复制
Objects.firstNonNull(list, ImmutableList.<Foo>of());

不需要专门的方法,当你从一个糟糕的is indeed得到一个可能为空的集合时,我们建议你立即使用这个方法,理想情况下,它一开始就不应该这样做。

票数 28
EN

Stack Overflow用户

发布于 2016-08-03 11:50:43

Apache Collections4有一个泛型方法ListUtils.emptyIfNull(List<T> list)

这是文档:https://commons.apache.org/proper/commons-collections/apidocs/org/apache/commons/collections4/ListUtils.html

票数 22
EN

Stack Overflow用户

发布于 2016-12-09 21:52:33

在Java 8中,可以使用以下代码:

代码语言:javascript
复制
Optional.ofNullable(foo.canReturnANullListOfStrings()).orElse(Collections.emptyList());
票数 15
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/14903554

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档