java - 我使用 lambda 列出 mongodb 中的集合索引,但在 eclipse 中出现错误

标签 java mongodb lambda java-8

MongoCollection cols = db.getCollection("test01");
cols.listIndexes().forEach(t -> System.out.println(t.toJson()));

我只想通过 lambda 实现 Block 接口(interface)的方法 apply(Document t),但在第二行出现错误:

The method forEach(Block) is ambiguous for the type ListIndexesIterable

我已经成功测试了以下代码,所以我的JDK版本是好的:

new Thread(() -> System.out.println(1111)).start();

我的 lambda 语法一定是错误的,任何人都可以帮助我。谢谢任何人帮助我。

最佳答案

你的语法没问题,但看起来像 ListIndexesIterable有 2 个 forEach 方法。 1 来自 Iterable,它接受一个 Consumer 和 1 来自 MongoIterable,它接受一个 Block,并且可以使用您的 lambda实例化其中之一。

解决方案是用所需的类型“标记” lambda:

cols.listIndexes().forEach((Block<...>) t -> System.out.println(t.toJson()));

关于java - 我使用 lambda 列出 mongodb 中的集合索引,但在 eclipse 中出现错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41257927/

相关文章:

java - gradle 5中的sourcesJar任务

java - android studio 报错找不到包?和一些错误?

java - Spring 4 mvc + JBoss5.1.0.GA 中 servlet 2.5 的安全性

mongodb - 在查找期间从集合中删除文档

mongodb - 在 mongodb 中删除重复文档的最快方法

c++ - 生成保证顺序执行吗?

java - NoClassDefFoundError: org/apache/commons/httpclient/HttpException 同时使用 Axis2 进行 WS 调用

java - findAndModify 失败并出现错误 : "Cannot update ' field 1' and ' field1' at the same time

c++ - 在没有捕获列表的情况下访问 lambda 中的变量

sorting - 如何在 Keras 中使用 argsort