从Arrays.asList转换为Array

day*_*mer 2 java bson java-8 mongodb-query java-stream

我有以下代码:

fieldsToFilter.stream()
    .map(e -> Arrays.asList(
        Filters.ne(e, ""),
        Filters.exists(e, true)
     ))
     .toArray(Bson[]::new))
Run Code Online (Sandbox Code Playgroud)

在执行时我得到了 java.lang.ArrayStoreException: java.util.Arrays$ArrayList

Filters.existsFilters.ne返回新的Bson实例.查看文档.

任何帮助表示赞赏

YCF*_*F_L 6

您可以使用flatMap而不是map

Stream.of 代替 Arrays.asList

Bson[] result = fieldsToFilter.stream()
                   .flatMap(e -> Stream.of(Filters.ne(e, "") , Filters.exists(e, true)))
                   .toArray(Bson[]::new);
Run Code Online (Sandbox Code Playgroud)