我跟随此guide尝试设置mongoDB数据库。
query1
mongoClient.listDatabaseNames().forEach(System.out::println);
已弃用并已被替换。
但是这一行会出现以下错误:
getDatabaseNames()
文档说明listDatabaseNames()返回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
,为什么我不能遍历这个列表呢?
答案 0 :(得分:4)
您可以通过转换为behave==1.2.6.dev0
Consumer<String>
答案 1 :(得分:2)
listDatabaseNames()
公开了不同的forEach
方法。一个人可以收到Block<? super String> block
作为参数,第二个收到Consumer<? super String> consumer
。
为了避免这种歧义,你需要根据自己的需要进行投射。
mongoClient1.listDatabaseNames()
.forEach((Block<String>) System.out::println);
关于此here
还有一个未解决的问题