从 Arrays.asList 转换为数组

Convert from Arrays.asList to Array

我有如下代码:

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

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

Filters.existsFilters.ne return 新的 Bson 实例。见 docs.

感谢任何帮助

您可以使用 flatMap 而不是 map

Stream.of 而不是 Arrays.asList

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