7

MongoIterable.forEachBlockJava 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を使用して定義されていないのはなぜですか? さらに良いことに、なぜ入っているのですか?ConsumerMongoIterable.forEach(Consumer<? super TResult> consumer)forEachMongoIterable

4

1 に答える 1