public interface CompletionStage<T>
stage.thenApply(x -> square(x)).thenAccept(x -> System.out.print(x)).thenRun(() -> System.out.println())
のようになります。追加の形式(compose)は、ステージの結果ではなくステージの関数自体を適用します。 Executor
を使用)の3つの方法のいずれかで配置されます。デフォルトおよび非同期モードの実行プロパティは、このインタフェースではなく、CompletionStageの実装で指定されます。明示的なExecutor引数を持つメソッドは、任意の実行プロパティを持っている場合や、同時実行をサポートしない場合もありますが、非同期性に対応する方法で処理が配置されます。
whenComplete
メソッドでは、結果に関係なくアクションのインジェクションが可能ですが、それ以外についてはその完了の結果が保持されます。handle
メソッドではさらに、このステージで置換結果を計算して、他の依存ステージによる追加の処理を可能にすることもできます。他のすべてのケースでは、ステージの計算が(非チェック)例外またはエラーで異常終了した場合、その完了を必要とするすべての依存ステージは、その例外を原因として保持するCompletionException
で、例外で完了します。ステージが2つのステージの両方に依存しており、両方が例外で完了した場合、CompletionExceptionはそれらの例外のどちらか1つに対応できます。ステージが2つのステージのどちらかに依存しており、どちらか1つのみが例外で完了した場合は、依存ステージが正常に完了するか例外で完了するかに関して何も保証されません。whenComplete
メソッドのケースでは、指定されたアクション自体で例外が発生し、そのステージがまだ例外で完了していない場合、そのステージはこの例外で完了します。すべてのメソッドは、前述のトリガー、実行および例外完了の仕様に準拠します(これについては、各メソッドの仕様では繰り返し言及しません)。また、完了の結果を受け入れるメソッドに結果を渡すために使用する(つまり、型T
のパラメータ用の)引数をnullにすることはできますが、他のパラメータにnull値を渡すとNullPointerException
がスローされます。
このインタフェースでは、初期の作成、強制的な正常または例外完了、完了のステータスまたは結果の調査、あるいはステージの完了の待機を行うメソッドは定義されません。必要に応じて、CompletionStageを実装することで、このような効果を実現する手段を提供できます。toCompletableFuture()
メソッドは、共通の変換型を提供することにより、このインタフェースの異なる実装間の相互運用を可能にします。
修飾子と型 | メソッドと説明 |
---|---|
CompletionStage<Void> |
acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。
|
CompletionStage<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
CompletionStage<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
このステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
CompletionStage<T> |
exceptionally(Function<Throwable,? extends T> fn)
このステージが例外で完了したときに、このステージの例外を指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
handle(BiFunction<? super T,Throwable,? extends U> fn)
このステージが正常終了または異常終了した際に実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
<U> CompletionStage<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
このステージが正常終了または異常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
<U> CompletionStage<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
このステージが正常終了または異常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数としてこのステージの結果と例外が使用される)。
|
CompletionStage<Void> |
runAfterBoth(CompletionStage<?> other, Runnable action)
このステージと指定された他のステージの両方が正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action)
このステージと指定された他のステージが正常に完了したときにこのステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
このステージと指定された他のステージが正常に完了したときに指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。例外の完了に適用されるルールの詳細は、
CompletionStage のドキュメントを参照してください。 |
CompletionStage<Void> |
runAfterEither(CompletionStage<?> other, Runnable action)
このステージと指定された他のステージのどちらかが正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action)
このステージと指定された他のステージのどちらかが正常に完了したときにこのステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
このステージと指定された他のステージのどちらかが正常に完了したときに指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenAccept(Consumer<? super T> action)
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenAcceptAsync(Consumer<? super T> action)
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenAcceptAsync(Consumer<? super T> action, Executor executor)
このステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<Void> |
thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
このステージと指定された他のステージの両方が正常終了した際に実行される新しいCompletionStageを返します(実行時には、指定されたアクションの引数として2つの結果が使用される)。
|
<U> CompletionStage<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
このステージと指定された他のステージが正常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定されたアクションの引数として2つの結果が使用される)。
|
<U> CompletionStage<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
このステージと指定された他のステージが正常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U> CompletionStage<U> |
thenApply(Function<? super T,? extends U> fn)
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
thenApplyAsync(Function<? super T,? extends U> fn)
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
<U,V> CompletionStage<V> |
thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
このステージと指定された他のステージの両方が正常終了した際に実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U,V> CompletionStage<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
このステージと指定された他のステージが正常終了した際にこのステージのデフォルト非同期実行機能を使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U,V> CompletionStage<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
このステージと指定された他のステージが正常終了した際に指定されたエグゼキュータを使って実行される新しいCompletionStageを返します(実行時には、指定された関数の引数として2つの結果が使用される)。
|
<U> CompletionStage<U> |
thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
このステージが正常に完了したときに、このステージを指定された関数への引数に設定して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
このステージが正常に完了したときに、このステージを指定された関数への引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。
|
<U> CompletionStage<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
このステージが正常に完了したときに、このステージの結果を指定された関数への引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenRun(Runnable action)
このステージが正常に完了したときに、指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenRunAsync(Runnable action)
このステージが正常に完了したときに、このステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletionStage<Void> |
thenRunAsync(Runnable action, Executor executor)
このステージが正常に完了したときに指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。
|
CompletableFuture<T> |
toCompletableFuture()
このステージと同じ完了プロパティを保持する
CompletableFuture を返します。 |
CompletionStage<T> |
whenComplete(BiConsumer<? super T,? super Throwable> action)
このステージの終了時に指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しいCompletionStageを返します(実行時には、このステージの結果(存在しない場合は
null )と例外(存在しない場合はnull )が使用される)。 |
CompletionStage<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
このステージの終了時にこのステージのデフォルト非同期実行機能を使って指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しいCompletionStageを返します(実行時には、このステージの結果(存在しない場合は
null )と例外(存在しない場合はnull )が引数として使用される)。 |
CompletionStage<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
このステージの終了時に指定されたExecutorを使って指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しいCompletionStageを返します(実行時には、このステージの結果(存在しない場合は
null )と例外(存在しない場合はnull )が引数として使用される)。 |
<U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータCompletionStage<Void> thenAccept(Consumer<? super T> action)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータCompletionStage<Void> thenRun(Runnable action)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> thenRunAsync(Runnable action)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStage
のドキュメントを参照してください。action
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータ<U,V> CompletionStage<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
のドキュメントを参照してください。U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数<U,V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
のドキュメントを参照してください。U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数<U,V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
CompletionStage
のドキュメントを参照してください。U
- 他のCompletionStageの結果の型V
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータ<U> CompletionStage<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
のドキュメントを参照してください。U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクション<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクション<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
U
- 他のCompletionStageの結果の型other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータCompletionStage<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータ<U> CompletionStage<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
CompletionStage
のドキュメントを参照してください。U
- 関数の戻り値の型other
- 他のCompletionStagefn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータCompletionStage<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータCompletionStage<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションCompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
のドキュメントを参照してください。other
- 他のCompletionStageaction
- 返されるCompletionStageを完了する前に実行するアクションexecutor
- 非同期実行に使用するエグゼキュータ<U> CompletionStage<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
のドキュメントを参照してください。U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
のドキュメントを参照してください。U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
CompletionStage
のドキュメントを参照してください。U
- 返されるCompletionStageの結果の型fn
- 新しいCompletionStageを返す関数executor
- 非同期実行に使用するエグゼキュータCompletionStage<T> exceptionally(Function<Throwable,? extends T> fn)
fn
- このCompletionStageが例外で完了した場合に返されるCompletionStageの値を計算するために使用される関数CompletionStage<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
null
)と例外(存在しない場合はnull
)が使用される)。action
- 実行するアクションCompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
null
)と例外(存在しない場合はnull
)が引数として使用される)。action
- 実行するアクションCompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
null
)と例外(存在しない場合はnull
)が引数として使用される)。action
- 実行するアクションexecutor
- 非同期実行に使用するエグゼキュータ<U> CompletionStage<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
null
)と例外(ない場合はnull
)を引数に指定して呼び出されます。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
null
)と例外(ない場合はnull
)を引数に指定して呼び出されます。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
null
)と例外(ない場合はnull
)を引数に指定して呼び出されます。U
- 関数の戻り値の型fn
- 返されるCompletionStageの値を計算するために使用される関数executor
- 非同期実行に使用するエグゼキュータCompletableFuture<T> toCompletableFuture()
CompletableFuture
を返します。このステージがすでにCompletableFutureである場合、このメソッドはこのステージ自体を返すことがあります。それ以外の場合は、このメソッドを呼び出すと、thenApply(x -> x)
と同等の効果が得られますが、CompletableFuture
型のインスタンスが返されます。他と相互運用しないCompletionStageの実装は、UnsupportedOperationException
をスローすることがあります。UnsupportedOperationException
- この実装がCompletableFutureと相互運用しない場合 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.