我开发了以下函数来获取非空对象数组:
private static Object[] getArrayNotNulls(Object... objs) {
return Arrays.stream(objs).filter(Objects::nonNull).toArray();
}
我这样称呼:
Object[] x = getArrayNotNulls(1,2, null, 3);
这很好,但是,我想知道,如果还没有一个java方法做同样的事情。类似的东西:
Object[] y = Collections.getArrayNotNull(1,2,null,3)
或混合,我想直接打电话
Object[] y = Arrays.stream(1,2,null,3).filter(Objects::nonNull).toArray();
// ^^^^^^^^^^
但这不起作用,因为它不接受Object ... arguments
答案 0 :(得分:0)
感谢Ben的评论,他的解决方案得以实现:
Arrays.<Object> asList(1, 2, null, 3).stream().filter(Objects::nonNull).toArray();
我还发现使用以下方法可以做得更清洁:
Stream.of(1, 2, null, 3).filter(Objects::nonNull).toArray();
答案 1 :(得分:-2)