Most visited

Recently visited

Added in API level 24

CompletableFuture

public class CompletableFuture
extends Object implements Future<T>, CompletionStage<T>

java.lang.Object
   ↳ java.util.concurrent.CompletableFuture<T>


Future可以明确地完成(设定其值和状态),并且可以被用作 CompletionStage ,支持有关的功能和它的完成时触发动作。

当两个或多个线程试图 completecompleteExceptionally ,或 cancel一个CompletableFuture,只有一个成功。

除了这些和直接操作状态和结果的相关方法之外,CompletableFuture还实现了带有以下策略的接口 CompletionStage

CompletableFuture还实施了 Future以下策略:

用于为接受它们的方法传递完成结果(即,类型为 T参数)的参数可能为空,但为任何其他参数传递null值将导致抛出 NullPointerException

Summary

Nested classes

interface CompletableFuture.AsynchronousCompletionTask

一个标记接口,用于标识由async方法生成的异步任务。

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)

如果尚未完成,请使用 CancellationException完成此CompletableFuture。

boolean complete(T value)

如果尚未完成,则将由 get()和相关方法返回的值设置为给定值。

boolean completeExceptionally(Throwable ex)

如果尚未完成,则导致 get()和相关方法的调用引发给定的异常。

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在正常完成之前取消,则返回 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)

返回一个新的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,它在运行给定操作后由运行在 commonPool()的任务异步完成。

static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)

返回一个新的CompletableFuture,它在运行给定操作后由给定执行程序中运行的任务异步完成。

static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)

返回一个新的CompletableFuture,它是由 commonPool()运行的任务通过调用给定Supplier获得的值异步完成的。

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

Public constructors

CompletableFuture

Added in API level 24
CompletableFuture ()

创建一个新的不完整的CompletableFuture。

Public methods

acceptEither

Added in API level 24
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

acceptEitherAsync

Added in API level 24
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

acceptEitherAsync

Added in API level 24
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

allOf

Added in API level 24
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

anyOf

Added in API level 24
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

applyToEither

Added in API level 24
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

applyToEitherAsync

Added in API level 24
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

applyToEitherAsync

Added in API level 24
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

cancel

Added in API level 24
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

complete

Added in API level 24
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

completeExceptionally

Added in API level 24
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

completedFuture

Added in API level 24
CompletableFuture<U> completedFuture (U value)

返回已经用给定值完成的新的CompletableFuture。

Parameters
value U: the value
Returns
CompletableFuture<U> the completed CompletableFuture

exceptionally

Added in API level 24
CompletableFuture<T> exceptionally (Function<Throwable, ? extends T> fn)

当CompletableFuture完成时返回一个新的CompletableFuture,异常的给定函数的结果在异常完成时触发此CompletableFuture的完成; 否则,如果这个CompletableFuture正常完成,那么返回的CompletableFuture也会以相同的值正常完成。 注意:使用方法whenCompletehandle可以使用更灵活的此功能版本。

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

get

Added in API level 24
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

get

Added in API level 24
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

getNow

Added in API level 24
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

getNumberOfDependents

Added in API level 24
int getNumberOfDependents ()

返回完成等待完成此CompletableFuture的CompletableFutures的估计数量。 此方法设计用于监视系统状态,而不是用于同步控制。

Returns
int the number of dependent CompletableFutures

handle

Added in API level 24
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

handleAsync

Added in API level 24
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

handleAsync

Added in API level 24
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

isCancelled

Added in API level 24
boolean isCancelled ()

如果此CompletableFuture在正常完成之前取消,则返回 true

Returns
boolean true if this CompletableFuture was cancelled before it completed normally

isCompletedExceptionally

Added in API level 24
boolean isCompletedExceptionally ()

如果此CompletableFuture以任何方式异常完成,则返回true 可能的原因包括取消,显式调用completeExceptionally以及突然终止CompletionStage操作。

Returns
boolean true if this CompletableFuture completed exceptionally

isDone

Added in API level 24
boolean isDone ()

如果以任何方式完成,则返回 true :通常,特殊情况或通过取消。

Returns
boolean true if completed

join

Added in API level 24
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

obtrudeException

Added in API level 24
void obtrudeException (Throwable ex)

强制导致方法get()和相关方法的后续调用抛出给定异常,无论是否已完成。 此方法仅适用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的与重写的结果进行的依赖性完成。

Parameters
ex Throwable: the exception
Throws
NullPointerException if the exception is null

obtrudeValue

Added in API level 24
void obtrudeValue (T value)

强制设置或重置随后通过方法get()和相关方法返回的值,无论是否已完成。 此方法仅适用于错误恢复操作,即使在这种情况下,也可能导致使用已建立的与重写的结果进行的依赖性完成。

Parameters
value T: the completion value

runAfterBoth

Added in API level 24
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

runAfterBothAsync

Added in API level 24
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

runAfterBothAsync

Added in API level 24
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

runAfterEither

Added in API level 24
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

runAfterEitherAsync

Added in API level 24
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

runAfterEitherAsync

Added in API level 24
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

runAsync

Added in API level 24
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

runAsync

Added in API level 24
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

supplyAsync

Added in API level 24
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

supplyAsync

Added in API level 24
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

thenAccept

Added in API level 24
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

thenAcceptAsync

Added in API level 24
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

thenAcceptAsync

Added in API level 24
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

thenAcceptBoth

Added in API level 24
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

thenAcceptBothAsync

Added in API level 24
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

thenAcceptBothAsync

Added in API level 24
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

thenApply

Added in API level 24
CompletableFuture<U> thenApply (Function<? super T, ? extends U> fn)

返回一个新的CompletionStage,当该阶段正常完成时,该阶段的结果作为所提供函数的参数执行。

该方法类似于 Optional.mapStream.map

关于非常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute the value of the returned CompletionStage
Returns
CompletableFuture<U> the new CompletionStage

thenApplyAsync

Added in API level 24
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

thenApplyAsync

Added in API level 24
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

thenCombine

Added in API level 24
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

thenCombineAsync

Added in API level 24
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

thenCombineAsync

Added in API level 24
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

thenCompose

Added in API level 24
CompletableFuture<U> thenCompose (Function<? super T, ? extends CompletionStage<U>> fn)

返回一个新的CompletionStage,其完成的值与给定函数返回的CompletionStage的值相同。

当这个阶段正常完成时,以该阶段的结果作为参数调用给定函数,返回另一个CompletionStage。 当该阶段正常完成时,此方法返回的CompletionStage将以相同的值完成。

为确保进度,所提供的功能必须安排最终的结果。

该方法类似于 Optional.flatMapStream.flatMap

关于异常完成的规则,请参阅 CompletionStage文档。

Parameters
fn Function: the function to use to compute another CompletionStage
Returns
CompletableFuture<U> the new CompletionStage

thenComposeAsync

Added in API level 24
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

thenComposeAsync

Added in API level 24
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

thenRun

Added in API level 24
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

thenRunAsync

Added in API level 24
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

thenRunAsync

Added in API level 24
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

toCompletableFuture

Added in API level 24
CompletableFuture<T> toCompletableFuture ()

返回这个CompletableFuture。

Returns
CompletableFuture<T> this CompletableFuture

toString

Added in API level 24
String toString ()

返回标识此CompletableFuture的字符串以及其完成状态。 括号中的状态包含字符串"Completed Normally"或字符串"Completed Exceptionally" ,或字符串"Not completed"后面跟随CompletableFutures的数量(取决于其完成)。

Returns
String a string identifying this CompletableFuture, as well as its state

whenComplete

Added in API level 24
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

whenCompleteAsync

Added in API level 24
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

whenCompleteAsync

Added in API level 24
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

Hooray!