gpt4 book ai didi

mongodb-java - MongoIterable.forEach 与 Iterable.forEach

转载 作者:行者123 更新时间:2023-12-04 05:03:42 25 4
gpt4 key购买 nike

MongoIterable.forEach需要 Block 这与 Java 8 Consumer 非常相似.
它们相似到足以导致问题,例如,以下内容无法编译:

MongoIterable<Document> result = collection.find(...);
result.forEach(System.out::println);

因为编译器无法在 Iterable.forEach( Consumer ) 之间做出决定和 MongoIterable.forEach( Block ) .解决此问题需要解决方法,例如显式键入参数:
Block<Document> printer = System.out::println;
result.forEach(printer);

或者,处理 MongoIterable作为一个普通的 Stream :
StreamSupport.stream(result.spliterator(), false).forEach(System.out::println);

为什么是 MongoIterable.forEach未使用 Consumer 定义接口(interface),类似于: MongoIterable.forEach(Consumer<? super TResult> consumer) ?更好 - 为什么有 forEachMongoIterable有吗?

最佳答案

Java 驱动程序仍然支持 Java 6 作为目标。因此,虽然尝试使 3.0 驱动程序对 Java 8 和 lambda 友好,但我们不能使用实际的 Java 8 接口(interface)。

关于mongodb-java - MongoIterable.forEach 与 Iterable.forEach,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34665211/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com