首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >获取非空对象的数组

获取非空对象的数组
EN

Stack Overflow用户
提问于 2018-05-24 18:49:47
回答 2查看 842关注 0票数 3

我开发了以下函数来获取非空对象的数组:

代码语言:javascript
运行
复制
private static Object[] getArrayNotNulls(Object... objs) {
    return Arrays.stream(objs).filter(Objects::nonNull).toArray();
}

我这样叫它:

代码语言:javascript
运行
复制
Object[] x = getArrayNotNulls(1,2, null, 3);

然而,我想知道是否已经有一个java方法可以做同样的事情。类似于:

代码语言:javascript
运行
复制
Object[] y = Collections.getArrayNotNull(1,2,null,3)

或者混合,我想直接调用

代码语言:javascript
运行
复制
Object[] y = Arrays.stream(1,2,null,3).filter(Objects::nonNull).toArray();
//                         ^^^^^^^^^^

但这不起作用,因为它不接受对象...参数

EN

回答 2

Stack Overflow用户

发布于 2018-05-24 21:36:28

多亏了Ben comment,他的解决方案制定出来了:

代码语言:javascript
运行
复制
Arrays.<Object> asList(1, 2, null, 3).stream().filter(Objects::nonNull).toArray();

我还发现,使用以下命令可以更清晰地完成此任务:

代码语言:javascript
运行
复制
Stream.of(1, 2, null, 3).filter(Objects::nonNull).toArray();
票数 1
EN

Stack Overflow用户

发布于 2018-05-24 18:54:32

我有另一个使用lamdas的解决方案,但它看起来与您的非常相似。

代码语言:javascript
运行
复制
Stream.filter(x -> x!=null):

如果您要使用列表,也有很多不错的解决方案:link

票数 -2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/50507437

复制
相关文章

相似问题

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