public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T>
Future
可以明确地完成(设定其值和状态),并且可以被用作CompletionStage
,支持有关的功能和它的完成时触发动作。
当两个或多个线程试图complete
, completeExceptionally
,或cancel
一个CompletableFuture,只有一个成功。
除了直接操作状态和结果的这些和相关方法外,CompletableFuture还实现了接口CompletionStage
,具有以下策略:
ForkJoinPool.commonPool()
执行 (除非它不支持至少两个并行级别,在这种情况下,使用新的线程)。 为了简化监视,调试和跟踪,所有生成的异步任务都是标记接口CompletableFuture.AsynchronousCompletionTask
的实例 。 CompletableFuture还实施Future
,具有以下政策:
FutureTask
),这个类不能直接控制导致其完成的计算,所以取消被视为另一种形式的异常完成。 方法cancel
具有相同的效果completeExceptionally(new CancellationException())
。 方法isCompletedExceptionally()
可用于确定CompletableFuture是否以任何特殊方式完成。 get()
和get(long, TimeUnit)
将抛出与对应的CompletionException中保持的相同原因的ExecutionException
。 为了简化大多数情况下的使用,此类还定义了方法join()
和getNow(T)
,而是在这些情况下直接抛出CompletionException。 Modifier and Type | Class and Description |
---|---|
static interface |
CompletableFuture.AsynchronousCompletionTask
标识接口,用于标识由
async 方法生成的
async 任务。
|
Constructor and Description |
---|
CompletableFuture()
创建一个新的不完整的CompletableFuture。
|
Modifier and Type | Method and Description |
---|---|
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,当所有给定的CompletableFutures完成时,完成。
|
static CompletableFuture<Object> |
anyOf(CompletableFuture<?>... cfs)
返回一个新的CompletableFuture,当任何一个给定的CompletableFutures完成时,完成相同的结果。
|
<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() 种相关方法为给定值。
|
static <U> CompletableFuture<U> |
completedFuture(U value)
返回已经使用给定值完成的新的CompletableFuture。
|
boolean |
completeExceptionally(Throwable ex)
如果尚未完成,则调用
get() 和相关方法来抛出给定的异常。
|
CompletableFuture<T> |
exceptionally(Function<Throwable,? extends T> fn)
返回一个新的CompletableFuture,当CompletableFuture完成时完成,结果是异常触发此CompletableFuture的完成特殊功能的给定功能;
否则,如果此CompletableFuture正常完成,则返回的CompletableFuture也会以相同的值正常完成。
|
T |
get()
等待这个未来完成的必要,然后返回结果。
|
T |
get(long timeout, TimeUnit unit)
如果有必要等待这个未来完成的给定时间,然后返回其结果(如果有的话)。
|
T |
getNow(T valueIfAbsent)
如果已完成,则返回结果值(或抛出任何遇到的异常),否则返回给定的值IfAbsent。
|
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)
返回一个新的CompletionStage,当该阶段完成正常或异常时,将使用此阶段的默认异步执行工具执行,此阶段的结果和异常作为提供函数的参数。
|
<U> CompletableFuture<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
返回一个新的CompletionStage,当此阶段完成正常或异常时,将使用提供的执行程序执行此阶段的结果和异常作为提供的函数的参数。
|
boolean |
isCancelled()
如果此CompletableFuture在正常完成之前被取消,则返回
true 。
|
boolean |
isCompletedExceptionally()
如果此CompletableFuture以任何方式完成异常完成,则返回
true 。
|
boolean |
isDone()
退货
true 如果以任何方式完成:通常,特别地,或通过取消。
|
T |
join()
完成后返回结果值,如果完成异常,则返回(未检查)异常。
|
void |
obtrudeException(Throwable ex)
强制导致后续调用方法
get() 和相关方法抛出给定的异常,无论是否已经完成。
|
void |
obtrudeValue(T value)
强制设置或重置随后方法返回的值
get() 和相关方法,无论是否已经完成。
|
CompletableFuture<Void> |
runAfterBoth(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行给定的动作。
|
CompletableFuture<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。
|
CompletableFuture<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
返回一个新CompletionStage,当这和其他特定阶段正常完成,使用附带的执行见执行给定的动作 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)
返回一个新的CompletableFuture,它在运行给定操作后由运行在
ForkJoinPool.commonPool() 中的任务
异步完成。
|
static CompletableFuture<Void> |
runAsync(Runnable runnable, Executor executor)
返回一个新的CompletableFuture,它在运行给定操作之后由在给定执行程序中运行的任务异步完成。
|
static <U> CompletableFuture<U> |
supplyAsync(Supplier<U> supplier)
返回一个新的CompletableFuture,它通过在
ForkJoinPool.commonPool() 中运行的任务与通过调用给定的供应商获得的值
异步完成。
|
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,当这个和另一个给定的阶段都正常完成时,两个结果作为提供的操作的参数被执行。
|
<U> CompletableFuture<Void> |
thenAcceptBothAsync(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<U> |
thenApply(Function<? super T,? extends U> fn)
返回一个新的CompletionStage,当此阶段正常完成时,将以该阶段的结果作为所提供函数的参数执行。
|
<U> CompletableFuture<U> |
thenApplyAsync(Function<? super T,? extends U> fn)
返回一个新的CompletionStage,当该阶段正常完成时,将使用此阶段的默认异步执行工具执行此阶段的结果作为所提供函数的参数。
|
<U> CompletableFuture<U> |
thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的执行程序执行此阶段的结果作为提供函数的参数。
|
<U,V> CompletableFuture<V> |
thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,两个结果作为提供函数的参数执行。
|
<U,V> CompletableFuture<V> |
thenCombineAsync(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> CompletableFuture<U> |
thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,当这个阶段正常完成时,这个阶段将作为提供函数的参数执行。
|
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的默认异步执行工具执行,此阶段作为提供的函数的参数。
|
<U> CompletableFuture<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的执行程序执行此阶段的结果作为提供函数的参数。
|
CompletableFuture<Void> |
thenRun(Runnable action)
返回一个新的CompletionStage,当此阶段正常完成时,执行给定的操作。
|
CompletableFuture<Void> |
thenRunAsync(Runnable action)
返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。
|
CompletableFuture<Void> |
thenRunAsync(Runnable action, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,使用提供的执行程序执行给定的操作。
|
CompletableFuture<T> |
toCompletableFuture()
返回此CompletableFuture
|
String |
toString()
返回一个标识此CompletableFuture的字符串及其完成状态。
|
CompletableFuture<T> |
whenComplete(BiConsumer<? super T,? super Throwable> action)
返回与此阶段相同的结果或异常的新的CompletionStage,当此阶段完成时,使用结果(或
null 如果没有))和此阶段的异常(或
null 如果没有))执行给定的操作。
|
CompletableFuture<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
返回一个与此阶段相同结果或异常的新CompletionStage,当此阶段完成时,执行给定操作将使用此阶段的默认异步执行工具执行给定操作,结果(或
null 如果没有))和异常(或
null 如果没有)这个阶段作为参数。
|
CompletableFuture<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
返回与此阶段相同的结果或异常的新的CompletionStage,当此阶段完成时,使用提供的执行者执行给定的操作,如果没有,则使用结果(或
null 如果没有))和异常(或
null 如果没有))作为论据。
|
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
ForkJoinPool.commonPool()
中的任务与通过调用给定的供应商获得的值
异步完成。
U
- 函数的返回类型
supplier
- 返回用于完成返回的CompletableFuture的值的函数
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
U
- 函数的返回类型
supplier
- 返回用于完成返回的CompletableFuture的值的函数
executor
- 执行器用于异步执行
public static CompletableFuture<Void> runAsync(Runnable runnable)
ForkJoinPool.commonPool()
中的任务
异步完成。
runnable
- 完成返回的CompletableFuture之前运行的操作
public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
runnable
- 完成返回的CompletableFuture之前运行的操作
executor
- 执行器用于异步执行
public static <U> CompletableFuture<U> completedFuture(U value)
U
- 值的类型
value
- 值
public boolean isDone()
true
如果以任何方式完成:通常,特别地,或通过取消。
public T get() throws InterruptedException, ExecutionException
get
在界面
Future<T>
CancellationException
- 如果这个未来被取消
ExecutionException
- 如果这个未来完成例外
InterruptedException
- 如果当前线程在等待时中断
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
get
在界面
Future<T>
timeout
- 等待的最长时间
unit
- 超时参数的时间单位
CancellationException
- 如果这个未来被取消
ExecutionException
- 如果这个未来完成例外
InterruptedException
- 如果当前线程在等待时中断
TimeoutException
- 如果等待超时
public T join()
CompletionException
,其中的基础异常是其原因。
CancellationException
- 如果计算被取消
CompletionException
- 如果这个未来完成异常或完成计算抛出异常
public T getNow(T valueIfAbsent)
valueIfAbsent
- 如果没有完成,返回的值
CancellationException
- 如果计算被取消
CompletionException
- 如果这个未来完成异常或完成计算抛出异常
public boolean complete(T value)
get()
种相关方法为给定值。
value
- 结果值
true
如果此调用导致此CompletableFuture过渡到完成状态,否则
false
public boolean completeExceptionally(Throwable ex)
get()
和相关方法来抛出给定的异常。
ex
- 例外
true
如果此调用导致此CompletableFuture过渡到完成状态,否则
false
public <U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenApply
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
CompletionStage
复制
CompletionStage
有关特殊完成规则的文档。
thenApplyAsync
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenApplyAsync
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 用于异步执行的执行程序
public CompletableFuture<Void> thenAccept(Consumer<? super T> action)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenAccept
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
thenAcceptAsync
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStage
复制
CompletionStage
文档,了解特殊完成的规则。
thenAcceptAsync
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public CompletableFuture<Void> thenRun(Runnable action)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
thenRun
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> thenRunAsync(Runnable action)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenRunAsync
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStage
复制
CompletionStage
覆盖特殊的完成规则的文档。
thenRunAsync
在界面
CompletionStage<T>
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public <U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
thenCombine
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果的类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenCombineAsync
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果的类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenCombineAsync
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果的类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenAcceptBoth
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
复制
thenAcceptBothAsync
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果的类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
CompletionStage
复制
thenAcceptBothAsync
在界面
CompletionStage<T>
U
- 其他CompletionStage的结果的类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStage
复制
CompletionStage
有关特殊完成规则的文档。
runAfterBoth
在接口
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStage
复制
CompletionStage
文档。
runAfterBothAsync
中的
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
复制
CompletionStage
覆盖特殊的完成规则的文档。
runAfterBothAsync
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public <U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
applyToEither
在界面
CompletionStage<T>
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
复制
CompletionStage
覆盖特殊的完成规则的文档。
applyToEitherAsync
在界面
CompletionStage<T>
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
CompletionStage
复制
CompletionStage
覆盖特殊的完成规则的文档。
applyToEitherAsync
在接口
CompletionStage<T>
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
复制
CompletionStage
文档。
acceptEither
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
复制
CompletionStage
覆盖特殊的完成规则的文档。
acceptEitherAsync
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
acceptEitherAsync
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
runAfterEither
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStage
复制
CompletionStage
文档,了解覆盖完成的规则。
runAfterEitherAsync
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
复制
CompletionStage
文档, 了解完整的规则。
runAfterEitherAsync
在界面
CompletionStage<T>
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
public <U> CompletableFuture<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenCompose
在接口
CompletionStage<T>
U
- 返回的CompletionStage结果的类型
fn
- 返回一个新的CompletionStage的函数
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenComposeAsync
在界面
CompletionStage<T>
U
- 返回的CompletionStage结果的类型
fn
- 返回一个新的CompletionStage的函数
public <U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
CompletionStage
复制
CompletionStage
文档,了解覆盖异常完成的规则。
thenComposeAsync
在接口
CompletionStage<T>
U
- 返回的CompletionStage结果的类型
fn
- 返回一个新的CompletionStage的函数
executor
- 用于异步执行的执行程序
public CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
CompletionStage
复制
null
如果没有))和此阶段的异常(或
null
如果没有))执行给定操作。
whenComplete
在接口
CompletionStage<T>
action
- 要执行的动作
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
CompletionStage
复制
null
如果没有))和异常(或
null
如果没有)这个阶段作为参数。
whenCompleteAsync
在界面
CompletionStage<T>
action
- 要执行的动作
public CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
CompletionStage
复制
null
如果没有))和异常(或
null
如果没有))作为论据。
whenCompleteAsync
在接口
CompletionStage<T>
action
- 要执行的动作
executor
- 执行器用于异步执行
public <U> CompletableFuture<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
CompletionStage
复制
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
handle
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
CompletionStage
复制
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
handleAsync
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
public <U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
CompletionStage
复制
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
handleAsync
在界面
CompletionStage<T>
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
public CompletableFuture<T> toCompletableFuture()
toCompletableFuture
在界面
CompletionStage<T>
public CompletableFuture<T> exceptionally(Function<Throwable,? extends T> fn)
whenComplete
和handle
可以使用此功能更灵活的版本。
exceptionally
在接口
CompletionStage<T>
fn
- 用于计算返回的CompletableFuture的值的函数,如果此CompletableFuture异常完成
public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
null
。
这种方法的应用之一是等待完成一组独立的CompletableFutures,然后再继续执行程序,如: CompletableFuture.allOf(c1, c2, c3).join();
。
cfs
- CompletableFutures
NullPointerException
- 如果数组或其任何元素是
null
public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
cfs
- CompletableFutures
NullPointerException
- 如果数组或其任何元素是
null
public boolean cancel(boolean mayInterruptIfRunning)
CancellationException
完成此CompletableFuture 。
尚未完成的依赖的CompletableFutures也将完成异常,由CancellationException引起的CancellationException
。
public boolean isCancelled()
true
。
isCancelled
在界面
Future<T>
true
如果此CompletableFuture在正常完成之前被取消
public boolean isCompletedExceptionally()
true
如果这个CompletableFuture以任何方式非常完成。
可能的原因包括取消,显式调用completeExceptionally
,并突然终止CompletionStage操作。
true
如果这个CompletableFuture格外完成
public void obtrudeValue(T value)
get()
和相关方法,无论是否已经完成。
该方法仅用于错误恢复操作,即使在这种情况下也可能导致使用已建立与覆盖结果的持续依赖性完成。
value
- 完成值
public void obtrudeException(Throwable ex)
get()
和相关方法抛出给定异常,无论是否已经完成。
该方法仅用于恢复操作,即使在这种情况下也可能导致使用已建立与覆盖结果的持续依赖性完成。
ex
- 例外
public int getNumberOfDependents()