java - 在 Java 中列出 mongoDB 的数据库时对 forEach 的引用不明确

标签 java mongodb lambda

我正在关注这个 guide尝试设置一个 mongoDB 数据库。

mongoClient.listDatabaseNames().forEach(System.out::println);

getDatabaseNames() 已弃用并被替换。

但是这一行给出了以下错误:

error: reference to forEach is ambiguous
    mongoClient.listDatabaseNames().forEach(System.out::println);
                                   ^
  both method forEach(Consumer<? super T>) in Iterable and method forEach(Block<? super TResult>) in MongoIterable match
  where T,TResult are type-variables:
    T extends Object declared in interface Iterable
    TResult extends Object declared in interface MongoIterable

文档指出 listDatabaseNames() 返回一个 ListDatabasesIterable,为什么我不能遍历这个列表?

最佳答案

您可以通过转换为 Consumer<String> 来帮助编译器解决歧义

mongoClient.listDatabaseNames()
           .forEach((Consumer<String>) System.out::println);

关于java - 在 Java 中列出 mongoDB 的数据库时对 forEach 的引用不明确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47979978/

相关文章:

mongodb - Elasticsearch curl : (7) couldn't connect to host

JavaFX - 为什么 ChoiceBoxes 参数化?

python - 动态创建 lambda 函数

java - Java 1.4 中的 SSL 兼容性

javascript - 无法使用 docker compose 安装包

mongodb - 如何在 mongodb 上配置 storage.smallFiles

Java8 : ambiguity with lambdas and overloaded methods

java - 为什么这个 for 循环不使用 Apache POI 迭代行? java

java - 如何在不使用 LDAP 的情况下在 java 中获取客户端系统的用户名?

java - 如何从概念上计算服务器可以服务的最大并发请求/负载?