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/