Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 从Arrays.asList转换为Array_Java_Java 8_Mongodb Query_Java Stream_Bson - Fatal编程技术网

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似乎想为mongodb
Stream创建一个过滤器。必须使用of()
,因为
Arrays.Stream()
方法不接受varargsCorrect@Lino,对不起,我正在使用我的手机:(我更改了
Arrays.asList(…,…).Stream()
如果是这样的话,也会起到同样的作用@Lino@nullpointer这将首先消除
列表的创建