3

があればCollection<CompletableFuture<MyResult>>、これを に変換する予定CompletableFuture<Collection<MyResult>>です。したがって、変換後、未来は1つしかなく、のようなMyResultメソッドを使用してコレクションにビジネスロジックを簡単に書き込むことができますが、結果型があるため、呼び出した後に「結果がありません」。たとえば、(私が理解しているように) に対応する返された未来から結果を取得することはできません。CompletableFuturethenApplythenAcceptCompletableFuture#allOfVoidCollection<CompletableFuture<MyResult>>

CompletableFuture#allOf結局完成したFutureをコレクションに戻すだけなのか疑問です。だから私は呼び出しCompletableFuture#allOf(...).isDoneてからmanually (!)サイクルで に変換Collection<CompletableFuture>することができCompletableFuture<Collection>ます, 私の仮定は正しいですか?

4

2 に答える 2

0

はい、allOfメソッドはデータを提供しませんが、すべての先物が完了したことを通知します。これにより、面倒なカウントダウン ラッチ アプローチを使用する必要がなくなります。Collectionその後、完成した先物を使用可能なものに変換して、ビジネス ロジックを適用することが期待されます。実装の詳細については、この質問を参照してください。このトピックに関する優れた議論は、このブログ投稿で入手できます。

于 2016-01-23T20:21:52.040 に答える