- 型パラメータ:
T- この将来のjoinおよびgetメソッドによって返される結果の型
- すべての実装されたインタフェース:
CompletionStage<T>,Future<T>
public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T>
Futureです。その完了時に発生する依存関数およびアクションをサポートし、CompletionStageとして使用できます。
2つ以上のスレッドがCompletableFutureのcomplete、completeExceptionallyまたはcancelを試行すると、1つのスレッドのみが成功します。
ステータスと結果を直接操作するこれらのメソッドおよび関連メソッドに加えて、CompletableFutureには次のポリシーを持つインタフェースCompletionStageが実装されています。
- 非同期でないメソッドの依存する完了のために提供されるアクションは、現在のCompletableFutureを完了するスレッド、または完了メソッドの他の呼出し元で実行できます。
- 明示的なExecutor引数を持たないすべての非同期メソッドは、
ForkJoinPool.commonPool()を使用して実行されます(ただし、少なくとも2個の並列性レベルがサポートされない場合は、新しいスレッドが作成されてそれぞれのタスクを実行します)。 これは、メソッドdefaultExecutor()を定義することによって、サブクラス内の非静的メソッドに対してオーバーライドできます。 モニタリング、デバッグおよび追跡を簡単にするため、生成される非同期タスクはすべてマーカー・インタフェースCompletableFuture.AsynchronousCompletionTaskのインスタンスです。 時間遅延を伴う操作では、このクラスで定義されたアダプタ・メソッドを使用できます:supplyAsync(supplier, delayedExecutor(timeout, timeUnit))。 遅延とタイムアウトを伴うメソッドをサポートするために、このクラスはアクションを起動したり取り消したりするためのデーモン・スレッドを最大で1つしか保持しません。 - CompletionStageのすべてのメソッドは、他のpublicメソッドとは独立して実装されているため、1つのメソッドの動作がサブクラス内の他のメソッドのオーバーライドによって影響されることはありません。
- すべてのCompletionStageメソッドはCompletableFuturesを返します。 インタフェースをCompletionStageインタフェースで定義されたメソッドのみに制限するには、メソッド
minimalCompletionStage()を使用します。 または、クライアントだけが未来を変更しないようにするには、メソッドcopy()を使用します。
CompletableFutureには、次のポリシーを持つFutureも実装されています。
- (
FutureTaskとは異なり)このクラスは自身を完了させる計算を直接制御できないため、取消しは単に別形式の例外完了として処理されます。cancelメソッドの効果はcompleteExceptionally(new CancellationException())と同じです。isCompletedExceptionally()メソッドは、CompletableFutureが例外で完了したかどうかを判定するために使用できます。 - CompletionExceptionによる例外完了の場合、
get()およびget(long, TimeUnit)メソッドは対応するCompletionExceptionと同じ原因でExecutionExceptionをスローします。 ほとんどのコンテキストで簡単に使用できるように、このクラスにはこれらの場合にCompletionExceptionをかわりに直接スローするjoin()およびgetNow(T)メソッドも定義されています。
完了結果(つまり、型Tのパラメータの場合)を受け入れるメソッドに渡す引数はnullでも構いませんが、他のパラメータにnull値を渡すとNullPointerExceptionがスローされます。
このクラスのサブクラスは、通常、"仮想コンストラクタ"メソッドnewIncompleteFuture()をオーバーライドする必要があります。newIncompleteFuture()は、CompletionStageメソッドによって返される具象型を確立します。 たとえば、異なるデフォルトのExecutorを置き換え、obtrudeメソッドを無効にするクラスを次に示します:
class MyCompletableFuture<T> extends CompletableFuture<T> {
static final Executor myExecutor = ...;
public MyCompletableFuture() { }
public <U> CompletableFuture<U> newIncompleteFuture() {
return new MyCompletableFuture<U>(); }
public Executor defaultExecutor() {
return myExecutor; }
public void obtrudeValue(T value) {
throw new UnsupportedOperationException(); }
public void obtrudeException(Throwable ex) {
throw new UnsupportedOperationException(); }
}- 導入されたバージョン:
- 1.8
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 クラス 説明 static interfaceCompletableFuture.AsynchronousCompletionTaskasyncメソッドによって生成された非同期タスクを識別するマーカー・インタフェースです。 -
コンストラクタのサマリー
コンストラクタ コンストラクタ 説明 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を返します。booleancancel(boolean mayInterruptIfRunning)まだ完了していない場合は、このCompletableFutureをCancellationExceptionで完了します。booleancomplete(T value)まだ完了していない場合は、get()および関連メソッドから返される値を指定された値に設定します。CompletableFuture<T>completeAsync(Supplier<? extends T> supplier)このCompletableFutureを、デフォルトExecutorを使用して非同期タスクから呼び出された、指定されたSupplier関数の結果で完了させます。CompletableFuture<T>completeAsync(Supplier<? extends T> supplier, Executor executor)指定されたExecutorを使用して非同期タスクから呼び出された、指定されたSupplier関数の結果でこのCompletableFutureを完了します。static <U> CompletableFuture<U>completedFuture(U value)指定された値ですでに完了している新しいCompletableFutureを返します。static <U> CompletionStage<U>completedStage(U value)指定された値ですでに完了している新しいCompletionStageを返し、インタフェースCompletionStageのメソッドのみをサポートします。booleancompleteExceptionally(Throwable ex)まだ完了していない場合は、get()および関連メソッドを呼び出して、指定された例外をスローします。CompletableFuture<T>completeOnTimeout(T value, long timeout, TimeUnit unit)指定されたタイムアウト前に完了していない場合は、このCompletableFutureを指定された値で完了します。CompletableFuture<T>copy()正常に完了したときにこのCompletableFutureと同じ値で正常に完了する新しいCompletableFutureを返します。ExecutordefaultExecutor()Executorを指定しない非同期メソッドに使用されるデフォルトのExecutorを返します。static ExecutordelayedExecutor(long delay, TimeUnit unit)指定された遅延(非正の場合は遅延なし)の後にデフォルトのexecutorにタスクをサブ・ミットする新しいExecutorを返します。static ExecutordelayedExecutor(long delay, TimeUnit unit, Executor executor)指定された遅延(非正の場合は遅延なし)の後に、指定されたベースexecutorにタスクをサブ・ミットする新しいExecutorを返します。static <U> CompletableFuture<U>failedFuture(Throwable ex)指定された例外を使ってすでに例外的に完了している新しいCompletableFutureを返します。static <U> CompletionStage<U>failedStage(Throwable ex)指定された例外を使って例外的にすでに完了している新しいCompletionStageを返し、インタフェースCompletionStageのメソッドのみをサポートします。Tget()必要な場合はこのフューチャが完了するのを待機し、その結果を返します。Tget(long timeout, TimeUnit unit)必要な場合は指定された時間までこのフューチャが完了するのを待機し、その結果を返します(使用可能な場合)。TgetNow(T valueIfAbsent)完了した場合は結果の値(または検出された例外)を返し、それ以外の場合は指定されたvalueIfAbsentを返します。intgetNumberOfDependents()自身の完了のためにこのCompletableFutureの完了を待機しているCompletableFutureの推定数を返します。booleanisCancelled()このCompletableFutureが正常に完了する前に取り消された場合はtrueを返します。booleanisCompletedExceptionally()このCompletableFutureがなんらかの形で例外で完了した場合はtrueを返します。booleanisDone()なんらかの形で(正常に、例外で、または取消しによって)完了した場合はtrueを返します。Tjoin()完了した場合は結果値を返します。例外で完了した場合は(非チェック)例外をスローします。CompletionStage<T>minimalCompletionStage()このCompletableFutureが正常に完了したときに、このCompletableFutureと同じ値で正常に完了し、独自に完了できないか、インタフェースCompletionStageのメソッドで定義されていない方法で使用することができない新しいCompletionStageを返します。<U> CompletableFuture<U>newIncompleteFuture()CompletionStageメソッドによって返される型の新しいCompletableFutureを返します。voidobtrudeException(Throwable ex)すでに完了しているかどうかに関係なく、後続のget()メソッドおよび関連メソッドの呼出しを強制的に行い、指定された例外をスローします。voidobtrudeValue(T value)すでに完了しているかどうかに関係なく、get()メソッドおよび関連メソッドからその後返される値を強制的に設定またはリセットします。CompletableFuture<T>orTimeout(long timeout, TimeUnit unit)例外的に、このCompletableFutureをTimeoutExceptionで完了します(指定されたタイムアウト前に完了していない場合)。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)これと他のステージが両方とも正常に完了した場合に、指定されたアクションを指定されたエグゼキュータを使用して実行する新しい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)指定された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)これと他のステージが両方とも正常に完了したときに、このステージのデフォルトの非同期実行ファシリティを使用して実行され、2つの結果が指定されたアクションの引数として実行される新しいCompletionStageを返します。<U> CompletableFuture<Void>thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)これと他のステージが両方とも正常に完了したときに、指定されたエグゼキュータを使用して実行され、2つの結果が指定されたアクションの引数として実行される新しいCompletionStageを返します。CompletableFuture<Void>thenRun(Runnable action)このステージが正常に完了したときに、指定されたアクションを実行する新しいCompletionStageを返します。CompletableFuture<Void>thenRunAsync(Runnable action)このステージが正常に完了したときに、このステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。CompletableFuture<Void>thenRunAsync(Runnable action, Executor executor)このステージが正常に完了したときに指定されたExecutorを使用して指定されたアクションを実行する新しいCompletionStageを返します。CompletableFuture<T>toCompletableFuture()このCompletableFutureを返します。StringtoString()このCompletableFutureおよびその完了状態を識別する文字列を返します。クラス java.lang.Objectで宣言されたメソッド
clone、equals、finalize、getClass、hashCode、notify、notifyAll、wait、wait、waitインタフェース java.util.concurrent.CompletionStageで宣言されたメソッド
applyToEither, applyToEitherAsync, applyToEitherAsync, exceptionally, exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync, handle, handleAsync, handleAsync, thenApply, thenApplyAsync, thenApplyAsync, thenCombine, thenCombineAsync, thenCombineAsync, thenCompose, thenComposeAsync, thenComposeAsync, whenComplete, whenCompleteAsync, whenCompleteAsync
-
コンストラクタの詳細
-
CompletableFuture
public CompletableFuture()新しい不完全なCompletableFutureを作成します。
-
-
メソッドの詳細
-
supplyAsync
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)ForkJoinPool.commonPool()で実行されているタスクが指定されたサプライヤを呼び出して取得した値を使用して非同期的に完了する新しいCompletableFutureを返します。- 型パラメータ:
U- 関数の戻り値の型- パラメータ:
supplier- 返されるCompletableFutureを完了するために使用される値を返す関数- 戻り値:
- 新しいCompletableFuture
-
supplyAsync
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)指定されたエグゼキュータで実行されているタスクが指定されたサプライヤを呼び出して取得した値を使用して非同期的に完了する新しいCompletableFutureを返します。- 型パラメータ:
U- 関数の戻り値の型- パラメータ:
supplier- 返されるCompletableFutureを完了するために使用される値を返す関数executor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletableFuture
-
runAsync
public static CompletableFuture<Void> runAsync(Runnable runnable)ForkJoinPool.commonPool()で実行されているタスクが指定されたアクションの実行後に非同期に完了する新しいCompletableFutureを返します。- パラメータ:
runnable- 返されるCompletableFutureを完了する前に実行するアクション- 戻り値:
- 新しいCompletableFuture
-
runAsync
public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)指定されたexecutorで実行されているタスクが指定されたアクションの実行後に非同期に完了する新しいCompletableFutureを返します。- パラメータ:
runnable- 返されるCompletableFutureを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletableFuture
-
completedFuture
public static <U> CompletableFuture<U> completedFuture(U value)指定された値ですでに完了している新しいCompletableFutureを返します。- 型パラメータ:
U- 値の型- パラメータ:
value- 値- 戻り値:
- 完了したCompletableFuture
-
isDone
public boolean isDone()なんらかの形で(正常に、例外で、または取消しによって)完了した場合はtrueを返します。 -
get
public T get() throws InterruptedException, ExecutionException必要な場合はこのフューチャが完了するのを待機し、その結果を返します。- 定義:
get、インタフェース:Future<T>- 戻り値:
- 結果値
- 例外:
CancellationException- このfutureが取り消された場合ExecutionException- このfutureが例外で完了した場合InterruptedException- 待機中に現在のスレッドで割込みが発生した場合
-
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException必要な場合は指定された時間までこのフューチャが完了するのを待機し、その結果を返します(使用可能な場合)。- 定義:
get、インタフェース:Future<T>- パラメータ:
timeout- 待機する最長時間unit- timeout引数の時間単位- 戻り値:
- 結果値
- 例外:
CancellationException- このfutureが取り消された場合ExecutionException- このfutureが例外で完了した場合InterruptedException- 待機中に現在のスレッドで割込みが発生した場合TimeoutException- 待機がタイム・アウトになった場合
-
join
public T join()完了した場合は結果値を返します。例外で完了した場合は(非チェック)例外をスローします。 一般的な関数形式の使用方法にあわせるため、このCompletableFutureの完了に関与する計算によって例外がスローされた場合、このメソッドはベースとなる例外をその原因に設定した(非チェックの)CompletionExceptionをスローします。- 戻り値:
- 結果値
- 例外:
CancellationException- 計算が取り消された場合CompletionException- このfutureが例外で完了するか、完了計算で例外がスローされた場合
-
getNow
完了した場合は結果の値(または検出された例外)を返し、それ以外の場合は指定されたvalueIfAbsentを返します。- パラメータ:
valueIfAbsent- 完了していない場合に返す値- 戻り値:
- 完了した場合は結果の値。それ以外の場合は指定されたvalueIfAbsent
- 例外:
CancellationException- 計算が取り消された場合CompletionException- このfutureが例外で完了するか、完了計算で例外がスローされた場合
-
complete
public boolean complete(T value)まだ完了していない場合は、get()および関連メソッドから返される値を指定された値に設定します。- パラメータ:
value- 結果値- 戻り値:
- この呼出しによってこのCompletableFutureが完了状態に遷移した場合は
true。それ以外の場合はfalse
-
completeExceptionally
public boolean completeExceptionally(Throwable ex)まだ完了していない場合は、get()および関連メソッドを呼び出して、指定された例外をスローします。- パラメータ:
ex- 例外- 戻り値:
- この呼出しによってこのCompletableFutureが完了状態に遷移した場合は
true。それ以外の場合はfalse
-
thenAccept
public CompletableFuture<Void> thenAccept(Consumer<? super T> action)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAccept、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAcceptAsync、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに、このステージの結果を指定されたアクションへの引数に設定し、指定されたエグゼキュータを使用して実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAcceptAsync、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
thenRun
public CompletableFuture<Void> thenRun(Runnable action)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに、指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenRun、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに、このステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenRunAsync、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)インタフェースからコピーされた説明:CompletionStageこのステージが正常に完了したときに指定されたExecutorを使用して指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenRunAsync、インタフェース:CompletionStage<T>- パラメータ:
action- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
thenAcceptBoth
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)インタフェースからコピーされた説明:CompletionStageこのステージと指定された他のステージの両方が正常終了した際に実行される新しいCompletionStageを返します(実行時には、指定されたアクションの引数として2つの結果が使用される)。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAcceptBoth、インタフェース:CompletionStage<T>- 型パラメータ:
U- 他のCompletionStageの結果の型- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)インタフェースからコピーされた説明:CompletionStageこれと他のステージが両方とも正常に完了したときに、このステージのデフォルトの非同期実行ファシリティを使用して実行され、2つの結果が指定されたアクションの引数として実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAcceptBothAsync、インタフェース:CompletionStage<T>- 型パラメータ:
U- 他のCompletionStageの結果の型- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
thenAcceptBothAsync
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)インタフェースからコピーされた説明:CompletionStageこれと他のステージが両方とも正常に完了したときに、指定されたエグゼキュータを使用して実行され、2つの結果が指定されたアクションの引数として実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
thenAcceptBothAsync、インタフェース:CompletionStage<T>- 型パラメータ:
U- 他のCompletionStageの結果の型- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
runAfterBoth
public CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)インタフェースからコピーされた説明:CompletionStageこのステージと指定された他のステージの両方が正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterBoth、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)インタフェースからコピーされた説明:CompletionStageこれと他のステージが両方とも正常に完了したときに、このステージのデフォルトの非同期実行機能を使用して、指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterBothAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)インタフェースからコピーされた説明:CompletionStageこれと他のステージが両方とも正常に完了した場合に、指定されたアクションを指定されたエグゼキュータを使用して実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterBothAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
acceptEither
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)インタフェースからコピーされた説明:CompletionStageこのステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定して実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
acceptEither、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)インタフェースからコピーされた説明:CompletionStageこのステージまたは指定された他のステージが正常に完了したときに、対応する結果を指定されたアクションへの引数に設定し、このステージのデフォルトの非同期実行機能を使用して実行される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
acceptEitherAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)インタフェースからコピーされた説明:CompletionStage指定されたステージが正常に完了したときに、指定されたステージのいずれかが正常に完了したときに、指定されたエグゼキュータを使用して実行され、対応する結果が指定されたアクションの引数として返される新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
acceptEitherAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
runAfterEither
public CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)インタフェースからコピーされた説明:CompletionStageこのステージと指定された他のステージのどちらかが正常に完了したときに指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterEither、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)インタフェースからコピーされた説明:CompletionStageこのステージと指定された他のステージのどちらかが正常に完了したときにこのステージのデフォルトの非同期実行機能を使用して指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterEitherAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクション- 戻り値:
- 新しいCompletionStage
-
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)インタフェースからコピーされた説明:CompletionStageこのステージと指定された他のステージのどちらかが正常に完了したときに指定されたエグゼキュータを使用して指定されたアクションを実行する新しいCompletionStageを返します。 例外の完了に適用されるルールの詳細は、CompletionStageのドキュメントを参照してください。- 定義:
runAfterEitherAsync、インタフェース:CompletionStage<T>- パラメータ:
other- 他のCompletionStageaction- 返されるCompletionStageを完了する前に実行するアクションexecutor- 非同期実行に使用するエグゼキュータ- 戻り値:
- 新しいCompletionStage
-
toCompletableFuture
public CompletableFuture<T> toCompletableFuture()このCompletableFutureを返します。- 定義:
toCompletableFuture、インタフェース:CompletionStage<T>- 戻り値:
- このCompletableFuture
-
allOf
public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)指定されたすべてのCompletableFutureが完了したときに完了する新しいCompletableFutureを返します。 指定されたいずれかのCompletableFutureが例外で完了した場合は、返されるCompletableFutureも例外で完了し、その原因としてこの例外がCompletionExceptionに保持されます。 それ以外の場合、指定されたCompletableFutureの結果(ある場合)は返されるCompletableFutureに反映されませんが、個別に調べることで取得できます。 CompletableFutureが1つも指定されなかった場合は、値nullで完了したCompletableFutureが返されます。このメソッドの用途の1つは、
CompletableFuture.allOf(c1, c2, c3).join();のように、プログラムを続行する前に一連の独立したCompletableFutureの完了を待機することです。- パラメータ:
cfs- CompletableFuture- 戻り値:
- 指定されたCompletableFutureがすべて完了したときに完了する新しいCompletableFuture
- 例外:
NullPointerException- 配列またはそのいずれかの要素がnullである場合
-
anyOf
public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)指定されたいずれかのCompletableFutureが完了したときに同じ結果で完了する新しいCompletableFutureを返します。 例外で完了した場合は、返されるCompletableFutureも例外で完了し、その原因としてこの例外がCompletionExceptionに保持されます。 CompletableFutureが1つも指定されなかった場合は、完了していないCompletableFutureが返されます。- パラメータ:
cfs- CompletableFuture- 戻り値:
- 指定されたいずれかのCompletableFutureが完了したときにその結果または例外で完了する新しいCompletableFuture
- 例外:
NullPointerException- 配列またはそのいずれかの要素がnullである場合
-
cancel
public boolean cancel(boolean mayInterruptIfRunning)まだ完了していない場合は、このCompletableFutureをCancellationExceptionで完了します。 このCancellationExceptionによってCompletionExceptionが発生するため、まだ完了していない依存するCompletableFutureも例外で完了します。 -
isCancelled
public boolean isCancelled()このCompletableFutureが正常に完了する前に取り消された場合はtrueを返します。- 定義:
isCancelled、インタフェース:Future<T>- 戻り値:
- このCompletableFutureが正常に完了する前に取り消された場合は
true
-
isCompletedExceptionally
public boolean isCompletedExceptionally()このCompletableFutureがなんらかの形で例外で完了した場合はtrueを返します。 考えられる原因として、取消し、completeExceptionallyの明示的な呼出し、CompletionStageのアクションの異常終了などがあります。- 戻り値:
- このCompletableFutureが例外で完了した場合は
true
-
obtrudeValue
public void obtrudeValue(T value)すでに完了しているかどうかに関係なく、get()メソッドおよび関連メソッドからその後返される値を強制的に設定またはリセットします。 このメソッドはエラー回復アクションでの使用のみを目的に設計されており、そのような状況でも、上書きされた結果ではなく確立された結果を使用して依存する完了が進行する場合があります。- パラメータ:
value- 完了値
-
obtrudeException
public void obtrudeException(Throwable ex)すでに完了しているかどうかに関係なく、後続のget()メソッドおよび関連メソッドの呼出しを強制的に行い、指定された例外をスローします。 このメソッドはエラー回復アクションでの使用のみを目的に設計されており、そのような状況でも、上書きされた結果ではなく確立された結果を使用して依存する完了が進行する場合があります。- パラメータ:
ex- 例外- 例外:
NullPointerException- 例外がnullの場合
-
getNumberOfDependents
public int getNumberOfDependents()自身の完了のためにこのCompletableFutureの完了を待機しているCompletableFutureの推定数を返します。 このメソッドは、同期の制御用としてではなく、システム状態の監視用として設計されています。- 戻り値:
- 依存するCompletableFutureの数
-
toString
public String toString()このCompletableFutureおよびその完了状態を識別する文字列を返します。 括弧で囲まれた状態には、文字列"Completed Normally"、文字列"Completed Exceptionally"または文字列"Not completed"に続いてその完了に依存するCompletableFutureの数(ある場合)が含まれています。 -
newIncompleteFuture
public <U> CompletableFuture<U> newIncompleteFuture()CompletionStageメソッドによって返される型の新しいCompletableFutureを返します。 サブクラスは、通常、このメソッドをオーバーライドして、このCompletableFutureと同じクラスのインスタンスを返します。 デフォルトの実装は、CompletableFutureクラスのインスタンスを返します。- 型パラメータ:
U- 値の型- 戻り値:
- 新しいCompletableFuture
- 導入されたバージョン:
- 9
-
defaultExecutor
public Executor defaultExecutor()Executorを指定しない非同期メソッドに使用されるデフォルトのExecutorを返します。 このクラスは、複数の並列スレッドをサポートする場合はForkJoinPool.commonPool()を使用し、非同期タスクごとに1つのスレッドを使用するExecutorを使用します。 このメソッドは、サブクラスでオーバーライドされ、少なくとも1つの独立したスレッドを提供するExecutorを返すことがあります。- 戻り値:
- エグゼクティブ
- 導入されたバージョン:
- 9
-
copy
public CompletableFuture<T> copy()正常に完了したときにこのCompletableFutureと同じ値で正常に完了する新しいCompletableFutureを返します。 このCompletableFutureが例外的に完了した場合、返されたCompletableFutureは、この例外をcauseとして持つCompletionExceptionを例外として完了します。 この動作はthenApply(x -> x)と同じです。 このメソッドは、クライアントが完了するのを防ぐために、依然として依存アクションを整理できるように、"防御的なコピー"のフォームとして役立ちます。- 戻り値:
- 新しいCompletableFuture
- 導入されたバージョン:
- 9
-
minimalCompletionStage
public CompletionStage<T> minimalCompletionStage()このCompletableFutureが正常に完了したときに、このCompletableFutureと同じ値で正常に完了し、独自に完了できないか、インタフェースCompletionStageのメソッドで定義されていない方法で使用することができない新しいCompletionStageを返します。 このCompletableFutureが例外的に完了した場合、返されたCompletionStageはこの例外を原因としてCompletionExceptionで例外的に完了します。サブクラスによってオーバーライドされない限り、利用可能なすべてのメソッドを持つ新しい最小でないCompletableFutureは、
toCompletableFuture()を介して最小のCompletionStageから取得できます。 例えば、最小限の段階の完了は、minimalStage.toCompletableFuture().join();- 戻り値:
- 新しいCompletionStage
- 導入されたバージョン:
- 9
-
completeAsync
public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier, Executor executor)指定されたExecutorを使用して非同期タスクから呼び出された、指定されたSupplier関数の結果でこのCompletableFutureを完了します。- パラメータ:
supplier- このCompletableFutureを完了するために使用される値を返す関数executor- 非同期実行に使用するエグゼキュータ- 戻り値:
- このCompletableFuture
- 導入されたバージョン:
- 9
-
completeAsync
public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier)このCompletableFutureを、デフォルトExecutorを使用して非同期タスクから呼び出された、指定されたSupplier関数の結果で完了させます。- パラメータ:
supplier- このCompletableFutureを完了するために使用される値を返す関数- 戻り値:
- このCompletableFuture
- 導入されたバージョン:
- 9
-
orTimeout
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)例外的に、このCompletableFutureをTimeoutExceptionで完了します(指定されたタイムアウト前に完了していない場合)。- パラメータ:
timeout-unitの単位でTimeoutExceptionで例外的に完了するまでの待機時間unit-timeoutパラメータの解釈方法を決定するTimeUnit- 戻り値:
- このCompletableFuture
- 導入されたバージョン:
- 9
-
completeOnTimeout
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)指定されたタイムアウト前に完了していない場合は、このCompletableFutureを指定された値で完了します。- パラメータ:
value- タイムアウト時に使用する値timeout-unitの単位で、指定された値で正常に完了するまでの待機時間unit-timeoutパラメータの解釈方法を決定するTimeUnit- 戻り値:
- このCompletableFuture
- 導入されたバージョン:
- 9
-
delayedExecutor
指定された遅延(非正の場合は遅延なし)の後に、指定されたベースexecutorにタスクをサブ・ミットする新しいExecutorを返します。 各遅延は、返されたexecutorexecuteメソッドの呼び出し時に開始されます。- パラメータ:
delay- どのくらいの遅延、unitの単位でunit-delayパラメータの解釈方法を決定するTimeUnitexecutor- ベース・エグゼキュータ- 戻り値:
- 新しい遅延エグゼキュータ
- 導入されたバージョン:
- 9
-
delayedExecutor
指定された遅延(非正の場合は遅延なし)の後にデフォルトのexecutorにタスクをサブ・ミットする新しいExecutorを返します。 各遅延は、返されたexecutorexecuteメソッドの呼び出し時に開始されます。- パラメータ:
delay- どのくらいの遅延、unitの単位でunit-delayパラメータの解釈方法を決定するTimeUnit- 戻り値:
- 新しい遅延エグゼキュータ
- 導入されたバージョン:
- 9
-
completedStage
public static <U> CompletionStage<U> completedStage(U value)指定された値ですでに完了している新しいCompletionStageを返し、インタフェースCompletionStageのメソッドのみをサポートします。- 型パラメータ:
U- 値の型- パラメータ:
value- 値- 戻り値:
- 完成したCompletionStage
- 導入されたバージョン:
- 9
-
failedFuture
public static <U> CompletableFuture<U> failedFuture(Throwable ex)指定された例外を使ってすでに例外的に完了している新しいCompletableFutureを返します。- 型パラメータ:
U- 値の型- パラメータ:
ex- 例外- 戻り値:
- 例外的に完了したCompletableFuture
- 導入されたバージョン:
- 9
-
failedStage
public static <U> CompletionStage<U> failedStage(Throwable ex)指定された例外を使って例外的にすでに完了している新しいCompletionStageを返し、インタフェースCompletionStageのメソッドのみをサポートします。- 型パラメータ:
U- 値の型- パラメータ:
ex- 例外- 戻り値:
- 例外的に完了したCompletionStage
- 導入されたバージョン:
- 9
-