从Arrays.asList转换为Array

时间:2019-02-28 12:53:26

标签: java java-8 mongodb-query java-stream bson

我的代码如下:

Enter your username: admın
Enter your PIN code: +1
Warning: the PIN contains a non-digit character!
Successful login as admin

执行时我得到fieldsToFilter.stream() .map(e -> Arrays.asList( Filters.ne(e, ""), Filters.exists(e, true) )) .toArray(Bson[]::new))

java.lang.ArrayStoreException: java.util.Arrays$ArrayListFilters.exists返回新的 Bson 实例。参见docs

感谢您的帮助

1 个答案:

答案 0 :(得分: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);