首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Java中列出mongoDB数据库时对forEach的模糊引用

在Java中列出mongoDB数据库时对forEach的模糊引用
EN

Stack Overflow用户
提问于 2017-12-26 14:32:20
回答 2查看 2.7K关注 0票数 6

我遵循这个指南来尝试建立一个mongoDB数据库。

代码语言:javascript
复制
mongoClient.listDatabaseNames().forEach(System.out::println);

不推荐使用getDatabaseNames()并替换它。

但是,这一行会出现以下错误:

代码语言:javascript
复制
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,为什么我不能迭代这个列表?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-26 14:38:02

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

代码语言:javascript
复制
mongoClient.listDatabaseNames()
           .forEach((Consumer<String>) System.out::println);
票数 9
EN

Stack Overflow用户

发布于 2017-12-26 14:41:14

listDatabaseNames()向不同的forEach方法公开。一个可以作为参数Block<? super String> block接收,第二个可以接收Consumer<? super String> consumer。为了避免这种模棱两可的现象,你需要把它投射到你的需要上。

代码语言:javascript
复制
  mongoClient1.listDatabaseNames()
              .forEach((Block<String>) System.out::println);

关于这个这里还有一个悬而未决的问题

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47979978

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档