Featured image of post 【Java8】CompletionStage<Void>を意図的に生成する方法【非同期処理】

【Java8】CompletionStage<Void>を意図的に生成する方法【非同期処理】

Java8の非同期処理でStubやJUnit用にCompletionStage<Void>を意図的に生成する方法。一番スッキリ書けるCompletableFuture.allOf()と、nullが登場するcompletedFuture()の2通りを比較します♪

374文字

CompletionStage<String>の作り方

Stubの生成やJUnitのケース作成をしている際に、CompletionStage<Void>型の戻り値を生成したいケースがあります。

しかし、CompletionStage<String>などであれば簡単に記述する事が出来ますが、CompletionStage<Void>のVoidをどうすれば良いのか、やり方を知らない方ではパッと正解を出すことは難しいと思いまうs。

今回は、CompletionStage<Void>を簡単に生成する方法をご紹介しようと思います♪

やり方

CompletableFuture#allOf

一番簡単でスッキリした記述はCompletableFuture#allOfメソッドを使う方法です。

[adsense-responsive]

CompletableFuture#allOf
CompletableFuture<Void> cf = CompletableFuture.allOf();

CompletableFuture#completedFuture

他にもCompletableFuture#completedFutureメソッドを使う事でも可能です。

CompletableFuture#allOf
CompletableFuture<Void> cf = CompletableFuture.completedFuture(null);

ただ、ソースコード上にnullが登場してしまうのであまりオススメはしません。

特に問題がないのであれば前者を使う事をオススメします。

終わりに

以上の様にやり方さえ知っていれば、簡単に生成する事が出来ます。

Javaでの非同期処理を実装する上では覚えていて損はないので、是非試してみてください♪