public class CompletableFuture
extends Object
implements Future<T>, CompletionStage<T>
java.lang.Object | |
↳ | java.util.concurrent.CompletableFuture<T> |
甲 Future
可以明确地完成(设定其值和状态),并且可以被用作 CompletionStage
,支持有关的功能和它的完成时触发动作。
当两个或多个线程试图 complete
, completeExceptionally
,或 cancel
一个CompletableFuture,只有一个成功。
除了这些和直接操作状态和结果的相关方法之外,CompletableFuture还实现了带有以下策略的接口 CompletionStage
:
commonPool()
(unless it does not support a parallelism level of at least two, in which case, a new Thread is created to run each task). To simplify monitoring, debugging, and tracking, all generated asynchronous tasks are instances of the marker interface CompletableFuture.AsynchronousCompletionTask
. Operations with time-delays can use adapter methods defined in this class, for example: supplyAsync(supplier, delayedExecutor(timeout, timeUnit))
. To support methods with delays and timeouts, this class maintains at most one daemon thread for triggering and cancelling actions, not for running them. CompletableFuture还实施了 Future
以下策略:
FutureTask
) this class has no direct control over the computation that causes it to be completed, cancellation is treated as just another form of exceptional completion. Method cancel
has the same effect as completeExceptionally(new CancellationException())
. Method isCompletedExceptionally()
can be used to determine if a CompletableFuture completed in any exceptional fashion. get()
and get(long, TimeUnit)
throw an ExecutionException
with the same cause as held in the corresponding CompletionException. To simplify usage in most contexts, this class also defines methods join()
and getNow(T)
that instead throw the CompletionException directly in these cases. 用于为接受它们的方法传递完成结果(即,类型为 T
参数)的参数可能为空,但为任何其他参数传递null值将导致抛出 NullPointerException
。
Nested classes |
|
---|---|
interface |
CompletableFuture.AsynchronousCompletionTask 一个标记接口,用于标识由 |
Public constructors |
|
---|---|
CompletableFuture() 创建一个新的不完整的CompletableFuture。 |
Public methods |
|
---|---|
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) 当所有给定的CompletableFutures完成时,返回一个新的CompletableFuture。 |
static CompletableFuture<Object> |
anyOf(CompletableFuture...<?> cfs) 当给定的CompletableFutures中的任何一个完成时返回一个新的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) 如果尚未完成,请使用 |
boolean |
complete(T value) 如果尚未完成,则将由 |
boolean |
completeExceptionally(Throwable ex) 如果尚未完成,则导致 |
static <U> CompletableFuture<U> |
completedFuture(U value) 返回已经用给定值完成的新的CompletableFuture。 |
CompletableFuture<T> |
exceptionally(Function<Throwable, ? extends T> fn) 当CompletableFuture完成时返回一个新的CompletableFuture,异常的给定函数的结果在异常完成时触发此CompletableFuture的完成; 否则,如果这个CompletableFuture正常完成,那么返回的CompletableFuture也会以相同的值正常完成。 |
T |
get(long timeout, TimeUnit unit) 如果有必要,至多等待此未来完成的给定时间,然后返回其结果(如果可用)。 |
T |
get() 如果有必要,等待这个未来完成,然后返回结果。 |
T |
getNow(T valueIfAbsent) 如果完成,则返回结果值(或引发任何遇到的异常),否则返回给定的valueIfAbsent。 |
int |
getNumberOfDependents() 返回完成等待完成此CompletableFuture的CompletableFutures的估计数量。 |
<U> CompletableFuture<U> |
handle(BiFunction<? super T, Throwable, ? extends U> fn) 返回一个新的CompletionStage,当该阶段正常或异常完成时,将以该阶段的结果和异常作为所提供函数的参数执行。 |
<U> CompletableFuture<U> |
handleAsync(BiFunction<? super T, Throwable, ? extends U> fn, Executor executor) 返回一个新的CompletionStage,当该阶段正常或异常完成时,使用提供的执行程序执行该阶段的结果和异常作为所提供函数的参数。 |
<U> CompletableFuture<U> |
handleAsync(BiFunction<? super T, Throwable, ? extends U> fn) 返回一个新的CompletionStage,当该阶段通常或异常完成时,使用该阶段的默认异步执行工具执行,此阶段的结果和异常作为所提供函数的参数。 |
boolean |
isCancelled() 如果此CompletableFuture在正常完成之前取消,则返回 |
boolean |
isCompletedExceptionally() 如果此CompletableFuture以任何方式异常完成,则返回 |
boolean |
isDone() 如果以任何方式完成,则返回 |
T |
join() 完成时返回结果值,或者如果异常完成则引发(未检查)异常。 |
void |
obtrudeException(Throwable ex) 强制导致方法 |
void |
obtrudeValue(T value) 强制设置或重置随后通过方法 |
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, Executor executor) 返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行给定的操作。 |
CompletableFuture<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action) 返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 |
static CompletableFuture<Void> |
runAsync(Runnable runnable) 返回一个新的CompletableFuture,它在运行给定操作后由运行在 |
static CompletableFuture<Void> |
runAsync(Runnable runnable, Executor executor) 返回一个新的CompletableFuture,它在运行给定操作后由给定执行程序中运行的任务异步完成。 |
static <U> CompletableFuture<U> |
supplyAsync(Supplier<U> supplier) 返回一个新的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, Executor executor) 返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供操作的参数。 |
CompletableFuture<Void> |
thenAcceptAsync(Consumer<? super T> action) 返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行该阶段的结果作为所提供操作的参数。 |
<U> CompletableFuture<Void> |
thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为参数执行所提供的动作。 |
<U> CompletableFuture<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行,并将两个结果作为所提供操作的参数。 |
<U> CompletableFuture<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行,并将两个结果作为所提供操作的参数。 |
<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,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供函数的参数。 |
<U, V> CompletableFuture<V> |
thenCombine(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为所提供函数的参数执行。 |
<U, V> CompletableFuture<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行器执行,并将两个结果作为所提供函数的参数。 |
<U, V> CompletableFuture<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn) 返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,将使用该阶段的默认异步执行工具执行,并将两个结果作为所提供函数的参数。 |
<U> CompletableFuture<U> |
thenCompose(Function<? super T, ? extends CompletionStage<U>> fn) 返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。 |
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn, Executor executor) 返回一个新的CompletionStage,它使用与提供的Executor执行的给定函数返回的CompletionStage相同的值完成。 |
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn) 返回一个新的CompletionStage,它使用与由给定函数返回的CompletionStage相同的值完成,并使用该阶段的默认异步执行工具执行。 |
CompletableFuture<Void> |
thenRun(Runnable action) 返回一个新的CompletionStage,当该阶段正常完成时,执行给定的动作。 |
CompletableFuture<Void> |
thenRunAsync(Runnable action, Executor executor) 返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行给定的操作。 |
CompletableFuture<Void> |
thenRunAsync(Runnable action) 返回一个新的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,该阶段在此阶段完成时使用提供的Executor执行给定操作。 |
Inherited methods |
|
---|---|
From class java.lang.Object
|
|
From interface java.util.concurrent.Future
|
|
From interface java.util.concurrent.CompletionStage
|
CompletableFuture<Void> acceptEither (CompletionStage<? extends T> other, Consumer<? super T> action)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行相应的结果作为提供的动作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Consumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> acceptEitherAsync (CompletionStage<? extends T> other, Consumer<? super T> action)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用此阶段的默认异步执行工具执行,并将相应的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Consumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> acceptEitherAsync (CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行,并将相应的结果作为参数提供给所提供的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Consumer : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> allOf (CompletableFuture...<?> cfs)
当所有给定的CompletableFutures完成时,返回一个新的CompletableFuture。 如果任何给定的CompletableFutures异常完成,则返回的CompletableFuture也会这样做,并且带有此异常的CompletionException作为其原因。 否则,给定CompletableFutures的结果(如果有的话)不会反映在返回的CompletableFuture中,但可以通过单独检查获得。 如果没有提供CompletableFutures,则返回值为null
的CompletableFuture。
该方法的应用之一是在继续执行程序之前等待完成一组独立的CompletableFutures,如: CompletableFuture.allOf(c1, c2, c3).join();
。
Parameters | |
---|---|
cfs |
CompletableFuture : the CompletableFutures |
Returns | |
---|---|
CompletableFuture<Void> |
a new CompletableFuture that is completed when all of the given CompletableFutures complete |
Throws | |
---|---|
NullPointerException |
if the array or any of its elements are null |
CompletableFuture<Object> anyOf (CompletableFuture...<?> cfs)
当给定的CompletableFutures中的任何一个完成时返回一个新的CompletableFuture,结果相同。 否则,如果它异常完成,则返回的CompletableFuture也会这样做,并且带有此异常的CompletionException作为其原因。 如果没有提供CompletableFutures,则返回一个不完整的CompletableFuture。
Parameters | |
---|---|
cfs |
CompletableFuture : the CompletableFutures |
Returns | |
---|---|
CompletableFuture<Object> |
a new CompletableFuture that is completed with the result or exception of any of the given CompletableFutures when one completes |
Throws | |
---|---|
NullPointerException |
if the array or any of its elements are null |
CompletableFuture<U> applyToEither (CompletionStage<? extends T> other, Function<? super T, U> fn)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,将执行相应的结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
Function : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> applyToEitherAsync (CompletionStage<? extends T> other, Function<? super T, U> fn)
返回一个新CompletionStage,当这个或其它给定的阶段完成,通常,使用此阶段的默认异步执行设施执行时,与相应的结果作为参数传递给提供的函数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
Function : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> applyToEitherAsync (CompletionStage<? extends T> other, Function<? super T, U> fn, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行器执行,并将相应的结果作为参数提供给所提供的函数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
Function : the function to use to compute the value of the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
boolean cancel (boolean mayInterruptIfRunning)
如果尚未完成,请使用CancellationException
完成此CompletableFuture。 那些尚未完成相关CompletableFutures也将完成分外,用CompletionException
由此引起CancellationException
。
Parameters | |
---|---|
mayInterruptIfRunning |
boolean : this value has no effect in this implementation because interrupts are not used to control processing. |
Returns | |
---|---|
boolean |
true if this task is now cancelled |
boolean complete (T value)
如果尚未完成,则将由 get()
和相关方法返回的值设置为给定值。
Parameters | |
---|---|
value |
T : the result value |
Returns | |
---|---|
boolean |
true if this invocation caused this CompletableFuture to transition to a completed state, else false |
boolean completeExceptionally (Throwable ex)
如果尚未完成,则调用 get()
和相关方法来引发给定的异常。
Parameters | |
---|---|
ex |
Throwable : the exception |
Returns | |
---|---|
boolean |
true if this invocation caused this CompletableFuture to transition to a completed state, else false |
CompletableFuture<U> completedFuture (U value)
返回已经用给定值完成的新的CompletableFuture。
Parameters | |
---|---|
value |
U : the value |
Returns | |
---|---|
CompletableFuture<U> |
the completed CompletableFuture |
CompletableFuture<T> exceptionally (Function<Throwable, ? extends T> fn)
当CompletableFuture完成时返回一个新的CompletableFuture,异常的给定函数的结果在异常完成时触发此CompletableFuture的完成; 否则,如果这个CompletableFuture正常完成,那么返回的CompletableFuture也会以相同的值正常完成。 注意:使用方法whenComplete
和handle
可以使用更灵活的此功能版本。
Parameters | |
---|---|
fn |
Function : the function to use to compute the value of the returned CompletableFuture if this CompletableFuture completed exceptionally |
Returns | |
---|---|
CompletableFuture<T> |
the new CompletableFuture |
T get (long timeout, TimeUnit unit)
如果有必要,至多等待此未来完成的给定时间,然后返回其结果(如果可用)。
Parameters | |
---|---|
timeout |
long : the maximum time to wait |
unit |
TimeUnit : the time unit of the timeout argument |
Returns | |
---|---|
T |
the result value |
Throws | |
---|---|
CancellationException |
if this future was cancelled |
ExecutionException |
if this future completed exceptionally |
InterruptedException |
if the current thread was interrupted while waiting |
TimeoutException |
if the wait timed out |
T get ()
如果有必要,等待这个未来完成,然后返回结果。
Returns | |
---|---|
T |
the result value |
Throws | |
---|---|
CancellationException |
if this future was cancelled |
ExecutionException |
if this future completed exceptionally |
InterruptedException |
if the current thread was interrupted while waiting |
T getNow (T valueIfAbsent)
如果完成,则返回结果值(或引发任何遇到的异常),否则返回给定的valueIfAbsent。
Parameters | |
---|---|
valueIfAbsent |
T : the value to return if not completed |
Returns | |
---|---|
T |
the result value, if completed, else the given valueIfAbsent |
Throws | |
---|---|
CancellationException |
if the computation was cancelled |
CompletionException |
if this future completed exceptionally or a completion computation threw an exception |
int getNumberOfDependents ()
返回完成等待完成此CompletableFuture的CompletableFutures的估计数量。 此方法设计用于监视系统状态,而不是用于同步控制。
Returns | |
---|---|
int |
the number of dependent CompletableFutures |
CompletableFuture<U> handle (BiFunction<? super T, Throwable, ? extends U> fn)
返回一个新的CompletionStage,当该阶段正常或异常完成时,将以该阶段的结果和异常作为所提供函数的参数执行。
当这个阶段完成时,给定的函数被调用,结果(或者 null
如果没有)和该阶段的异常(或者 null
如果没有)作为参数被调用,并且函数的结果被用来完成返回的阶段。
Parameters | |
---|---|
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> handleAsync (BiFunction<? super T, Throwable, ? extends U> fn, Executor executor)
返回一个新的CompletionStage,当该阶段正常或异常完成时,使用提供的执行程序执行该阶段的结果和异常作为所提供函数的参数。
当这个阶段完成后,给定的函数将以该阶段的结果(或者 null
如果没有的话)和异常(或者 null
如果没有的话)作为参数被调用,并且函数的结果被用来完成返回的阶段。
Parameters | |
---|---|
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> handleAsync (BiFunction<? super T, Throwable, ? extends U> fn)
返回一个新的CompletionStage,当该阶段通常或异常完成时,使用该阶段的默认异步执行工具执行,此阶段的结果和异常作为所提供函数的参数。
当这个阶段完成时,给定的函数被调用,结果(或者 null
如果没有的话)和这个阶段的异常(或者 null
如果没有)作为参数被调用,并且函数的结果被用来完成返回的阶段。
Parameters | |
---|---|
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
boolean isCancelled ()
如果此CompletableFuture在正常完成之前取消,则返回 true
。
Returns | |
---|---|
boolean |
true if this CompletableFuture was cancelled before it completed normally |
boolean isCompletedExceptionally ()
如果此CompletableFuture以任何方式异常完成,则返回true
。 可能的原因包括取消,显式调用completeExceptionally
以及突然终止CompletionStage操作。
Returns | |
---|---|
boolean |
true if this CompletableFuture completed exceptionally |
boolean isDone ()
如果以任何方式完成,则返回 true
:通常,特殊情况或通过取消。
Returns | |
---|---|
boolean |
true if completed |
T join ()
完成时返回结果值,或者如果异常完成则引发(未检查)异常。 为了更好地符合常用函数形式的使用,如果在CompletableFuture的完成中涉及的计算抛出异常,则此方法抛出带有基本异常的(未选中的) CompletionException
作为其原因。
Returns | |
---|---|
T |
the result value |
Throws | |
---|---|
CancellationException |
if the computation was cancelled |
CompletionException |
if this future completed exceptionally or a completion computation threw an exception |
void obtrudeException (Throwable ex)
强制导致方法get()
和相关方法的后续调用抛出给定异常,无论是否已完成。 此方法仅适用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的与重写的结果进行的依赖性完成。
Parameters | |
---|---|
ex |
Throwable : the exception |
Throws | |
---|---|
NullPointerException |
if the exception is null |
void obtrudeValue (T value)
强制设置或重置随后通过方法get()
和相关方法返回的值,无论是否已完成。 此方法仅适用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的与重写的结果进行的依赖性完成。
Parameters | |
---|---|
value |
T : the completion value |
CompletableFuture<Void> runAfterBoth (CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行给定的动作。 关于异常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAfterBothAsync (CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAfterBothAsync (CompletionStage<?> other, Runnable action, Executor executor)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行给定的动作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAfterEither (CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,执行给定的动作。 有关特殊完成规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAfterEitherAsync (CompletionStage<?> other, Runnable action, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用提供的执行程序执行给定的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAfterEitherAsync (CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个或另一个给定的阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> runAsync (Runnable runnable)
返回一个新的CompletableFuture,它在运行给定操作后由运行在 commonPool()
的任务异步完成。
Parameters | |
---|---|
runnable |
Runnable : the action to run before completing the returned CompletableFuture |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletableFuture |
CompletableFuture<Void> runAsync (Runnable runnable, Executor executor)
返回一个新的CompletableFuture,它在运行给定操作后由给定执行程序中运行的任务异步完成。
Parameters | |
---|---|
runnable |
Runnable : the action to run before completing the returned CompletableFuture |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletableFuture |
CompletableFuture<U> supplyAsync (Supplier<U> supplier)
返回一个新的CompletableFuture,它是通过调用给定供应商获得的值通过 commonPool()
运行的任务异步完成的。
Parameters | |
---|---|
supplier |
Supplier : a function returning the value to be used to complete the returned CompletableFuture |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletableFuture |
CompletableFuture<U> supplyAsync (Supplier<U> supplier, Executor executor)
返回一个新的CompletableFuture,它由给定执行器中运行的任务异步完成,并通过调用给定供应商获得该值。
Parameters | |
---|---|
supplier |
Supplier : a function returning the value to be used to complete the returned CompletableFuture |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletableFuture |
CompletableFuture<Void> thenAccept (Consumer<? super T> action)
返回一个新的CompletionStage,当该阶段正常完成时,将以该阶段的结果作为所提供操作的参数执行。 关于异常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Consumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenAcceptAsync (Consumer<? super T> action, Executor executor)
返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Consumer : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenAcceptAsync (Consumer<? super T> action)
返回一个新的CompletionStage,当该阶段正常完成时,使用此阶段的默认异步执行工具执行该阶段的结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Consumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenAcceptBoth (CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为参数执行所提供的动作。 关于异常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
BiConsumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenAcceptBothAsync (CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行程序执行,并将两个结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
BiConsumer : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenAcceptBothAsync (CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用该阶段的默认异步执行工具执行,并将两个结果作为所提供操作的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
action |
BiConsumer : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<U> thenApply (Function<? super T, ? extends U> fn)
返回一个新的CompletionStage,当该阶段正常完成时,该阶段的结果作为所提供函数的参数执行。
该方法类似于 Optional.map
和 Stream.map
。
关于非常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> thenApplyAsync (Function<? super T, ? extends U> fn)
返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行该阶段的结果作为所提供函数的参数。 有关特殊完成规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> thenApplyAsync (Function<? super T, ? extends U> fn, Executor executor)
返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行该阶段的结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute the value of the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<V> thenCombine (CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,以两个结果作为所提供函数的参数执行。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<V> |
the new CompletionStage |
CompletableFuture<V> thenCombineAsync (CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,使用提供的执行器执行,并将两个结果作为所提供函数的参数。 有关特殊完成规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<V> |
the new CompletionStage |
CompletableFuture<V> thenCombineAsync (CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,将使用该阶段的默认异步执行工具执行,并将两个结果作为所提供函数的参数。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
other |
CompletionStage : the other CompletionStage |
fn |
BiFunction : the function to use to compute the value of the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<V> |
the new CompletionStage |
CompletableFuture<U> thenCompose (Function<? super T, ? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。
当这个阶段正常完成时,以该阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。
为确保进度,所提供的功能必须安排最终的结果。
该方法类似于 Optional.flatMap
和 Stream.flatMap
。
关于异常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute another CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> thenComposeAsync (Function<? super T, ? extends CompletionStage<U>> fn, Executor executor)
返回一个新的CompletionStage,它使用与提供的Executor执行的给定函数返回的CompletionStage相同的值完成。
当这个阶段正常完成时,以该阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。
为确保进度,所提供的功能必须安排最终的结果。
关于非常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute another CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<U> thenComposeAsync (Function<? super T, ? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,它使用与由给定函数返回的CompletionStage相同的值完成,并使用该阶段的默认异步执行工具执行。
当这个阶段正常完成时,以该阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。
为确保进度,所提供的功能必须安排最终的结果。
关于异常完成的规则,请参阅 CompletionStage
文档。
Parameters | |
---|---|
fn |
Function : the function to use to compute another CompletionStage |
Returns | |
---|---|
CompletableFuture<U> |
the new CompletionStage |
CompletableFuture<Void> thenRun (Runnable action)
返回一个新的CompletionStage,当该阶段正常完成时,执行给定的动作。 有关特殊完成规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenRunAsync (Runnable action, Executor executor)
返回一个新的CompletionStage,当该阶段正常完成时,使用提供的Executor执行给定的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Runnable : the action to perform before completing the returned CompletionStage |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<Void> thenRunAsync (Runnable action)
返回一个新的CompletionStage,当该阶段正常完成时,使用该阶段的默认异步执行工具执行给定的操作。 关于非常完成的规则,请参阅CompletionStage
文档。
Parameters | |
---|---|
action |
Runnable : the action to perform before completing the returned CompletionStage |
Returns | |
---|---|
CompletableFuture<Void> |
the new CompletionStage |
CompletableFuture<T> toCompletableFuture ()
返回这个CompletableFuture。
Returns | |
---|---|
CompletableFuture<T> |
this CompletableFuture |
String toString ()
返回标识此CompletableFuture的字符串以及其完成状态。 括号中的状态包含字符串"Completed Normally"
或字符串"Completed Exceptionally"
,或字符串"Not completed"
后面跟随CompletableFutures的数量(取决于其完成)。
Returns | |
---|---|
String |
a string identifying this CompletableFuture, as well as its state |
CompletableFuture<T> whenComplete (BiConsumer<? super T, ? super Throwable> action)
返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时执行给定操作。
当这个阶段完成后,给定的动作将以结果(或者null
如果没有的话)和异常(或者null
如果没有的话)作为参数来调用。 返回的阶段在动作返回时完成。
与方法handle
不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。
Parameters | |
---|---|
action |
BiConsumer : the action to perform |
Returns | |
---|---|
CompletableFuture<T> |
the new CompletionStage |
CompletableFuture<T> whenCompleteAsync (BiConsumer<? super T, ? super Throwable> action)
返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用此阶段的默认异步执行工具执行给定操作。
当这个阶段完成时,给定的动作被调用,并且结果(或者null
如果没有的话)和这个阶段的异常(或者null
如果没有的话)作为参数被调用。 返回的阶段在动作返回时完成。
与方法handleAsync
不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。
Parameters | |
---|---|
action |
BiConsumer : the action to perform |
Returns | |
---|---|
CompletableFuture<T> |
the new CompletionStage |
CompletableFuture<T> whenCompleteAsync (BiConsumer<? super T, ? super Throwable> action, Executor executor)
返回与此阶段具有相同结果或例外的新CompletionStage,该阶段在此阶段完成时使用提供的Executor执行给定操作。
当这个阶段完成时,给定的动作被调用,结果(或者null
如果没有的话)和这个阶段的异常(或者null
如果没有)作为参数被调用。 返回的阶段在动作返回时完成。
与方法handleAsync
不同,此方法不用于转换完成结果,因此提供的操作不应引发异常。 但是,如果是这样,则适用以下规则:如果此阶段正常完成,但所提供的操作引发异常,则返回的阶段会异常地完成所提供的操作的异常。 或者,如果此阶段异常完成并且提供的操作引发异常,则返回的阶段异常完成,此阶段的异常。
Parameters | |
---|---|
action |
BiConsumer : the action to perform |
executor |
Executor : the executor to use for asynchronous execution |
Returns | |
---|---|
CompletableFuture<T> |
the new CompletionStage |