Java 从Arrays.asList转换为Array
我的代码如下:Java 从Arrays.asList转换为Array,java,java-8,mongodb-query,java-stream,bson,Java,Java 8,Mongodb Query,Java Stream,Bson,我的代码如下: fieldsToFilter.stream() .map(e -> Arrays.asList( Filters.ne(e, ""), Filters.exists(e, true) )) .toArray(Bson[]::new)) 执行时,我获取java.lang.ArrayStoreException:java.util.Arrays$ArrayList Bson[] result = fieldsToFi
fieldsToFilter.stream()
.map(e -> Arrays.asList(
Filters.ne(e, ""),
Filters.exists(e, true)
))
.toArray(Bson[]::new))
执行时,我获取java.lang.ArrayStoreException:java.util.Arrays$ArrayList
Bson[] result = fieldsToFilter.stream()
.flatMap(e -> Stream.of(Filters.ne(e, "") , Filters.exists(e, true)))
.toArray(Bson[]::new);
Filters.exists
和Filters.ne
返回新的Bson实例。看
非常感谢您的帮助您可以使用
flatMap
而不是map
,并且
Stream.of
而不是数组.asList
Bson[] result = fieldsToFilter.stream()
.flatMap(e -> Stream.of(Filters.ne(e, "") , Filters.exists(e, true)))
.toArray(Bson[]::new);
为什么不干脆
新建Bson[]{Filters.ne(e,“”),Filters.exists(e,true)}
?请问预期的结果是什么?@OleV.V。似乎属于类型Bson[]
Yes,@nullpointer,但长度和内容是什么?@OleV.V。OP似乎想为mongodbStream创建一个过滤器。必须使用of()
,因为Arrays.Stream()
方法不接受varargsCorrect@Lino,对不起,我正在使用我的手机:(我更改了Arrays.asList(…,…).Stream()
如果是这样的话,也会起到同样的作用@Lino@nullpointer这将首先消除列表的创建