public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T>
Future
です。その完了時に発生する依存関数およびアクションをサポートし、CompletionStage
として使用できます。
2つ以上のスレッドがCompletableFutureのcomplete
、completeExceptionally
またはcancel
を試行すると、1つのスレッドのみが成功します。
ステータスと結果を直接操作するこれらのメソッドおよび関連メソッドに加えて、CompletableFutureには次のポリシーを持つインタフェースCompletionStage
が実装されています。
ForkJoinPool.commonPool()
を使用して実行されます(ただし、少なくとも2個の並列性レベルがサポートされない場合は、新しいスレッドが作成されてそれぞれのタスクを実行します)。 モニタリング、デバッグおよび追跡を簡単にするため、生成される非同期タスクはすべてマーカー・インタフェースCompletableFuture.AsynchronousCompletionTask
のインスタンスです。 CompletableFutureには、次のポリシーを持つFuture
も実装されています。
FutureTask
とは異なり)このクラスは自身を完了させる計算を直接制御できないため、取消しは単に別形式の例外完了として処理されます。 cancel
メソッドの効果はcompleteExceptionally(new CancellationException())
と同じです。 isCompletedExceptionally()
メソッドは、CompletableFutureが例外で完了したかどうかを判定するために使用できます。 get()
およびget(long, TimeUnit)
メソッドは対応するCompletionExceptionと同じ原因でExecutionException
をスローします。 ほとんどのコンテキストで簡単に使用できるように、このクラスにはこれらの場合にCompletionExceptionをかわりに直接スローするjoin()
およびgetNow(T)
メソッドも定義されています。 修飾子と型 | クラス | 説明 |
---|---|---|
static interface |
CompletableFuture.AsynchronousCompletionTask |
async メソッドによって生成された非同期タスクを識別するマーカー・インタフェースです。 |
コンストラクタ | 説明 |
---|---|
CompletableFuture() |
新しい不完全なCompletableFutureを作成します。
|
修飾子と型 | メソッド | 説明 |
---|---|---|
CompletableFuture<Void> |
acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。
|
CompletableFuture<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
CompletableFuture<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
static CompletableFuture<Void> |
allOf(CompletableFuture<?>... cfs) |
指定されたすべてのCompletableFutureが完了したときに完了する新しいCompletableFutureを返します。
|
static CompletableFuture<Object> |
anyOf(CompletableFuture<?>... cfs) |
指定されたいずれかのCompletableFutureが完了したときに同じ結果で完了する新しいCompletableFutureを返します。
|
<U> CompletableFuture<U> |
applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor) |
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
boolean |
cancel(boolean mayInterruptIfRunning) |
まだ完了していない場合は、このCompletableFutureを
CancellationException で完了します。 |
boolean |
complete(T value) |
まだ完了していない場合は、
get() および関連メソッドから返される値を指定された値に設定します。 |
static <U> CompletableFuture<U> |
completedFuture(U value) |
指定された値ですでに完了している新しいCompletableFutureを返します。
|
boolean |
completeExceptionally(Throwable ex) |
まだ完了していない場合は、
get() および関連メソッドを呼び出して、指定された例外をスローします。 |
CompletableFuture<T> |
exceptionally(Function<Throwable,? extends T> fn) |
このCompletableFutureが完了したときに完了する新しいCompletableFutureを返します。例外で完了した場合は、このCompletableFutureの完了をトリガーした例外の指定された関数の結果を含みます。このCompletableFutureが正常に完了した場合は、返されるCompletableFutureも同じ値で正常に完了します。
|
T |
get() |
必要な場合はこのfutureが完了するのを待機し、その結果を返します。
|
T |
get(long timeout, TimeUnit unit) |
必要な場合は指定された時間までこのfutureが完了するのを待機し、その結果を返します(使用可能な場合)。
|
T |
getNow(T valueIfAbsent) |
完了した場合は結果の値(または検出された例外)を返し、それ以外の場合は指定されたvalueIfAbsentを返します。
|
int |
getNumberOfDependents() |
自身の完了のためにこのCompletableFutureの完了を待機しているCompletableFutureの推定数を返します。
|
<U> CompletableFuture<U> |
handle(BiFunction<? super T,Throwable,? extends U> fn) |
このステージが正常終了または異常終了した際に実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
<U> CompletableFuture<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn) |
このステージが正常終了または異常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
<U> CompletableFuture<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor) |
このステージが正常終了または異常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
boolean |
isCancelled() |
このCompletableFutureが正常に完了する前に取り消された場合は
true を返します。 |
boolean |
isCompletedExceptionally() |
このCompletableFutureがなんらかの形で例外で完了した場合は
true を返します。 |
boolean |
isDone() |
なんらかの形で(正常に、例外で、または取消しによって)完了した場合は
true を返します。 |
T |
join() |
完了した場合は結果値を返します。例外で完了した場合は(非チェック)例外をスローします。
|
void |
obtrudeException(Throwable ex) |
すでに完了しているかどうかに関係なく、後続の
get() メソッドおよび関連メソッドの呼出しを強制的に行い、指定された例外をスローします。 |
void |
obtrudeValue(T value) |
すでに完了しているかどうかに関係なく、
get() メソッドおよび関連メソッドからその後返される値を強制的に設定またはリセットします。 |
CompletableFuture<Void> |
runAfterBoth(CompletionStage<?> other, Runnable action) |
このステージと指定された他のステージの両方が正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action) |
このステージと指定された他のステージが正常に完了したときにこのステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor) |
このステージと指定された他のステージが正常に完了したときに、指定されたexecutorを使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
runAfterEither(CompletionStage<?> other, Runnable action) |
このステージと指定された他のステージのどちらかが正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action) |
このステージと指定された他のステージのどちらかが正常に完了したときにこのステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor) |
このステージと指定された他のステージのどちらかが正常に完了したときに、指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
static CompletableFuture<Void> |
runAsync(Runnable runnable) |
ForkJoinPool.commonPool() で実行されているタスクが指定されたアクションの実行後に非同期に完了する新しいCompletableFutureを返します。 |
static CompletableFuture<Void> |
runAsync(Runnable runnable, Executor executor) |
指定されたエグゼキュータで実行されているタスクが指定されたアクションの実行後に非同期に完了する新しいCompletableFutureを返します。
|
static <U> CompletableFuture<U> |
supplyAsync(Supplier<U> supplier) |
ForkJoinPool.commonPool() で実行されているタスクが指定されたサプライヤを呼び出して取得した値を使用して非同期的に完了する新しいCompletableFutureを返します。 |
static <U> CompletableFuture<U> |
supplyAsync(Supplier<U> supplier, Executor executor) |
指定されたエグゼキュータで実行されているタスクが指定されたサプライヤを呼び出して取得した値を使用して非同期的に完了する新しいCompletableFutureを返します。
|
CompletableFuture<Void> |
thenAccept(Consumer<? super T> action) |
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。
|
CompletableFuture<Void> |
thenAcceptAsync(Consumer<? super T> action) |
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
CompletableFuture<Void> |
thenAcceptAsync(Consumer<? super T> action, Executor executor) |
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<Void> |
thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action) |
このステージと指定された他のステージの両方が正常終了した際に実行される新しいCompletionStageを返します(実行時には、指定されたアクションの引数として2つの結果が使用される)。
|
<U> CompletableFuture<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action) |
このステージと指定された他のステージが正常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定されたアクションの引数として2つの結果が使用される)。
|
<U> CompletableFuture<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor) |
このステージと指定された他のステージが正常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U> CompletableFuture<U> |
thenApply(Function<? super T,? extends U> fn) |
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
thenApplyAsync(Function<? super T,? extends U> fn) |
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
thenApplyAsync(Function<? super T,? extends U> fn, Executor executor) |
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
<U,V> CompletableFuture<V> |
thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn) |
このステージと指定された他のステージの両方が正常終了した際に実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U,V> CompletableFuture<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn) |
このステージと指定された他のステージが正常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U,V> CompletableFuture<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor) |
このステージと指定された他のステージが正常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U> CompletableFuture<U> |
thenCompose(Function<? super T,? extends CompletionStage<U>> fn) |
このステージが正常に完了したときに、このステージを指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn) |
このステージが正常に完了したときに、このステージを指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor) |
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
CompletableFuture<Void> |
thenRun(Runnable action) |
このステージが正常に完了したときに、指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
thenRunAsync(Runnable action) |
このステージが正常に完了したときに、このステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<Void> |
thenRunAsync(Runnable action, Executor executor) |
このステージが正常に完了したときに指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<T> |
toCompletableFuture() |
このCompletableFutureを返します。
|
String |
toString() |
このCompletableFutureおよびその完了状態を識別する文字列を返します。
|
CompletableFuture<T> |
whenComplete(BiConsumer<? super T,? super Throwable> action) |
このステージの終了時に、指定されたアクションを実行する、このステージの同じ結果または例外を使用して新しいCompletionStageを返します。
|
CompletableFuture<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action) |
このステージの終了時に、このステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する、このステージの同じ結果または例外を使用して新しいCompletionStageを返します。
|
CompletableFuture<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor) |
このステージの終了時に、指定されたエグゼキュータを使用して指定されたアクションを実行する、このステージの同じ結果または例外を使用して新しいCompletionStageを返します。
|
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
ForkJoinPool.commonPool()
で実行されているタスクが指定されたサプライヤを呼び出して取得した値を使用して非同期的に完了する新しいCompletableFutureを返します。U
- 関数の戻り値の型supplier
- 返されるCompletableFutureを完了するために使用される値を返す関数public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
U
- 関数の戻り値の型supplier
- 返されるCompletableFutureを完了するために使用される値を返す関数executor
- 非同期実行に使用するエグゼキュータpublic static CompletableFuture<Void> runAsync(Runnable runnable)
ForkJoinPool.commonPool()
で実行されているタスクが指定されたアクションの実行後に非同期に完了する新しいCompletableFutureを返します。runnable
- 返されるCompletableFutureを完了する前に実行するアクションpublic static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
runnable
- 返されるCompletableFutureを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic static <U> CompletableFuture<U> completedFuture(U value)
U
- 値の型value
- 値public boolean isDone()
true
を返します。public T get() throws InterruptedException, ExecutionException
get
、インタフェースFuture<T>
CancellationException
- このfutureが取り消された場合ExecutionException
- このfutureが例外で完了した場合InterruptedException
- 待機中に現在のスレッドで割込みが発生した場合public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
get
、インタフェースFuture<T>
timeout
- 待機する最長時間unit
- timeout引数の時間単位CancellationException
- このfutureが取り消された場合ExecutionException
- このfutureが例外で完了した場合InterruptedException
- 待機中に現在のスレッドで割込みが発生した場合TimeoutException
- 待機がタイム・アウトになった場合public T join()
CompletionException
をスローします。 CancellationException
- 計算が取り消された場合CompletionException
- このfutureが例外で完了するか、完了計算で例外がスローされた場合public T getNow(T valueIfAbsent)
valueIfAbsent
- 完了していない場合に返す値CancellationException
- 計算が取り消された場合CompletionException
- このfutureが例外で完了するか、完了計算で例外がスローされた場合public boolean complete(T value)
get()
および関連メソッドから返される値を指定された値に設定します。value
- 結果値true
。それ以外の場合はfalse
public boolean completeExceptionally(Throwable ex)
get()
および関連メソッドを呼び出して、指定された例外をスローします。ex
- 例外true
。それ以外の場合はfalse
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenApply
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenApplyAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenApplyAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<Void> thenAccept(Consumer<? super T> action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenAccept
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenAcceptAsync
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenAcceptAsync
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<Void> thenRun(Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenRun
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> thenRunAsync(Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenRunAsync
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenRunAsync
、インタフェースCompletionStage<T>
action
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic <U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenCombine
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenCombineAsync
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenCombineAsync
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータpublic <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenAcceptBoth
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
thenAcceptBothAsync
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
CompletionStage
thenAcceptBothAsync
、インタフェースCompletionStage<T>
U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterBoth
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterBothAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterBothAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic <U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 applyToEither
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 applyToEitherAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 applyToEitherAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 acceptEither
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 acceptEitherAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 acceptEitherAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterEither
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterEitherAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションpublic CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 runAfterEitherAsync
、インタフェースCompletionStage<T>
other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic <U> CompletableFuture<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenCompose
、インタフェースCompletionStage<T>
U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenComposeAsync
、インタフェースCompletionStage<T>
U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
CompletionStage
CompletionStage
のドキュメントを参照してください。 thenComposeAsync
、インタフェースCompletionStage<T>
U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数executor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
CompletionStage
このステージの終了時に、指定されたアクションは、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出されます。 アクションが返されたときに、返されたステージが完了します。 指定されたアクション自体で例外が発生した場合、そのステージも例外で完了しないかぎり、返されたステージはこの例外で完了します。
whenComplete
、インタフェースCompletionStage<T>
action
- 実行するアクションpublic CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
CompletionStage
このステージの終了時に、指定されたアクションは、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出されます。 アクションが返されたときに、返されたステージが完了します。 指定されたアクション自体で例外が発生した場合、そのステージも例外で完了しないかぎり、返されたステージはこの例外で完了します。
whenCompleteAsync
、インタフェースCompletionStage<T>
action
- 実行するアクションpublic CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
CompletionStage
このステージの終了時に、指定されたアクションは、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出されます。 アクションが返されたときに、返されたステージが完了します。 指定されたアクション自体で例外が発生した場合、そのステージも例外で完了しないかぎり、返されたステージはこの例外で完了します。
whenCompleteAsync
、インタフェースCompletionStage<T>
action
- 実行するアクションexecutor
- 非同期実行に使用するエグゼキュータpublic <U> CompletableFuture<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
CompletionStage
このステージの終了時に、指定された関数は、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出され、関数の結果を使用して返されたステージが完了します。
handle
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
CompletionStage
このステージの終了時に、指定された関数は、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出され、関数の結果を使用して返されたステージが完了します。
handleAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
CompletionStage
このステージの終了時に、指定された関数は、このステージの結果(ない場合はnull
)と例外(ない場合はnull
)を引数に指定して呼び出され、関数の結果を使用して返されたステージが完了します。
handleAsync
、インタフェースCompletionStage<T>
U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータpublic CompletableFuture<T> toCompletableFuture()
toCompletableFuture
、インタフェースCompletionStage<T>
public CompletableFuture<T> exceptionally(Function<Throwable,? extends T> fn)
whenComplete
およびhandle
メソッドを使用して利用できます。 exceptionally
、インタフェースCompletionStage<T>
fn
- このCompletableFutureが例外で完了した場合に返されるCompletableFutureの値を計算するために使用される関数public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
null
で完了したCompletableFutureが返されます。
このメソッドの用途の1つは、CompletableFuture.allOf(c1, c2, c3).join();
のように、プログラムを続行する前に一連の独立したCompletableFutureの完了を待機することです。
cfs
- CompletableFutureNullPointerException
- 配列またはそのいずれかの要素がnull
である場合public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
cfs
- CompletableFutureNullPointerException
- 配列またはそのいずれかの要素がnull
である場合public boolean cancel(boolean mayInterruptIfRunning)
CancellationException
で完了します。 このCancellationException
によってCompletionException
が発生するため、まだ完了していない依存するCompletableFutureも例外で完了します。 public boolean isCancelled()
true
を返します。isCancelled
、インタフェースFuture<T>
true
public boolean isCompletedExceptionally()
true
を返します。 考えられる原因として、取消し、completeExceptionally
の明示的な呼出し、CompletionStageのアクションの異常終了などがあります。 true
public void obtrudeValue(T value)
get()
メソッドおよび関連メソッドからその後返される値を強制的に設定またはリセットします。 このメソッドはエラー回復アクションでの使用のみを目的に設計されており、そのような状況でも、上書きされた結果ではなく確立された結果を使用して依存する完了が進行する場合があります。 value
- 完了値public void obtrudeException(Throwable ex)
get()
メソッドおよび関連メソッドの呼出しを強制的に行い、指定された例外をスローします。 このメソッドはエラー回復アクションでの使用のみを目的に設計されており、そのような状況でも、上書きされた結果ではなく確立された結果を使用して依存する完了が進行する場合があります。 ex
- 例外NullPointerException
- 例外がnullの場合public int getNumberOfDependents()
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。 そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright © 1993, 2025, Oracle and/or its affiliates. All rights reserved. Use is subject to license terms. Documentation Redistribution Policyも参照してください。