2017-12-20 5 views
2

補完信号のみを通知するCompletableFutureが必要です(たとえば、戻り値がありません)。CompletableFutureを完了するには<Void>?

CompletableFuture<Void> future = new CompletableFuture<>(); 

しかし、私は完全なメソッドに何を養う必要があります。

私はCompletableFutureをインスタンス化することができますか?例えば、私はあなたが気づいてきたように、あなたはこのようなVoidオブジェクトをインスタンス化することはできません

future.complete(new Void()); 

答えて

2

を行うことはできません。 あなたが未来の価値を気にしないので、あなただけのnullでそれを完了できます。

future.complete(null); 
+1

作品のおかげで、。しかし、Voidをインスタンス化する方法はまったくないと言っていますか? future.get()を呼び出すとどうなりますか?この場合、私はVoidよりもむしろnullを取るでしょうか? – Xinchao

+1

@ Xinchaoええ、あなたは 'null'を得るだろう。 ['Void'のjavadoc](https://docs.oracle.com/javase/8/docs/api/java/lang/Void.html)を引用するには:" Voidクラスは**インスタンス化不可能なプレースホルダです* * Javaのキーワードvoidを表すClassオブジェクトへの参照を保持するクラス。 – Mureinik

関連する問題