public interface CompletionStage<T>
stage.thenApply(x -> square(x)).thenAccept(x -> System.out.print(x)).thenRun(() -> System.out.println())
。 另外一个表单( 组合 )应用阶段本身的功能,而不是它们的结果。 Executor
)。 默认和异步模式的执行属性由CompletionStage实现指定,而不是此接口。 具有显式Executor参数的方法可能具有任意执行属性,甚至可能不支持并发执行,而是以适应异步方式进行处理。 whenComplete
允许注入动作而不考虑结果,否则保留完成结果。 方法handle
还允许阶段计算可以使其他依赖阶段进一步处理的替换结果。 在所有其他情况下,如果一个阶段的计算以(未检查)的异常或错误突然终止,那么所有依赖阶段都要求完成异常, CompletionException
将异常作为其原因。 如果一个阶段是依赖于两个两个阶段,都非常完整,那么CompletionException可以对应于这些例外的任何一个。 如果一个阶段依赖于两个其他的任何一个,并且只有一个完成异常,则不能保证依赖阶段是否正常或异常完成。 在方法whenComplete
的情况下,当提供的操作本身遇到异常时,如果没有特别地完成,那么该阶段异常地完成该异常。 所有方法都遵循上述触发,执行和特殊完成规范(在各个方法规范中不重复)。 另外,对于接受它们的方法,用于传递完成结果的参数(也就是对于参数类型为T的T
)可能为空,为任何其他参数传递空值将导致抛出NullPointerException
。
该接口没有定义初始创建方法,强制完成正常或异常的探测完成状态或结果,或等待阶段完成。 CompletionStage的实施可能会提供适当的方式来实现这种效果。 方法toCompletableFuture()
通过提供公共转换类型实现了该接口的不同实现之间的互操作性。
Modifier and Type | Method and Description |
---|---|
CompletionStage<Void> |
acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,执行相应的结果作为提供的操作的参数。
|
CompletionStage<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,将使用此阶段的默认异步执行工具执行,其中相应的结果作为提供的操作的参数。
|
CompletionStage<Void> |
acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,将使用提供的执行器执行,其中相应的结果作为参数提供给函数。
|
<U> CompletionStage<U> |
applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,执行相应的结果作为提供的函数的参数。
|
<U> CompletionStage<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,将使用此阶段的默认异步执行工具执行,其中相应的结果作为提供函数的参数。
|
<U> CompletionStage<U> |
applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,将使用提供的执行器执行,其中相应的结果作为参数提供给函数。
|
CompletionStage<T> |
exceptionally(Function<Throwable,? extends T> fn)
返回一个新的CompletionStage,当此阶段完成异常时,将以此阶段的异常作为提供函数的参数执行。
|
<U> CompletionStage<U> |
handle(BiFunction<? super T,Throwable,? extends U> fn)
返回一个新的CompletionStage,当此阶段正常或异常完成时,将使用此阶段的结果和异常作为所提供函数的参数执行。
|
<U> CompletionStage<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
返回一个新的CompletionStage,当该阶段完成正常或异常时,将使用此阶段的默认异步执行工具执行,此阶段的结果和异常作为提供函数的参数。
|
<U> CompletionStage<U> |
handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
返回一个新的CompletionStage,当此阶段完成正常或异常时,将使用提供的执行程序执行此阶段的结果和异常作为提供的函数的参数。
|
CompletionStage<Void> |
runAfterBoth(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,执行给定的动作。
|
CompletionStage<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。
|
CompletionStage<Void> |
runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
返回一个新CompletionStage,当这和其他特定阶段正常完成,使用附带的执行见执行给定的动作 CompletionStage 覆盖特殊的完成规则的文档。
|
CompletionStage<Void> |
runAfterEither(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,执行给定的操作。
|
CompletionStage<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。
|
CompletionStage<Void> |
runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
返回一个新的CompletionStage,当这个或另一个给定阶段正常完成时,使用提供的执行器执行给定的操作。
|
CompletionStage<Void> |
thenAccept(Consumer<? super T> action)
返回一个新的CompletionStage,当此阶段正常完成时,将以该阶段的结果作为提供的操作的参数执行。
|
CompletionStage<Void> |
thenAcceptAsync(Consumer<? super T> action)
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的默认异步执行工具执行,此阶段的结果作为提供的操作的参数。
|
CompletionStage<Void> |
thenAcceptAsync(Consumer<? super T> action, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的执行程序执行此阶段的结果作为提供的操作的参数。
|
<U> CompletionStage<Void> |
thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,两个结果作为提供的操作的参数被执行。
|
<U> CompletionStage<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,将使用此阶段的默认异步执行工具执行,其中两个结果作为提供的操作的参数。
|
<U> CompletionStage<Void> |
thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,使用提供的执行器执行,其中两个结果作为提供的函数的参数。
|
<U> CompletionStage<U> |
thenApply(Function<? super T,? extends U> fn)
返回一个新的CompletionStage,当此阶段正常完成时,将以该阶段的结果作为所提供函数的参数执行。
|
<U> CompletionStage<U> |
thenApplyAsync(Function<? super T,? extends U> fn)
返回一个新的CompletionStage,当该阶段正常完成时,将使用此阶段的默认异步执行工具执行此阶段的结果作为所提供函数的参数。
|
<U> CompletionStage<U> |
thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的执行程序执行此阶段的结果作为提供函数的参数。
|
<U,V> CompletionStage<V> |
thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
返回一个新的CompletionStage,当这个和另一个给定的阶段都正常完成时,两个结果作为提供函数的参数执行。
|
<U,V> CompletionStage<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,将使用此阶段的默认异步执行工具执行,其中两个结果作为提供函数的参数。
|
<U,V> CompletionStage<V> |
thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
返回一个新的CompletionStage,当这个和另一个给定阶段正常完成时,使用提供的执行器执行,其中两个结果作为提供的函数的参数。
|
<U> CompletionStage<U> |
thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,当这个阶段正常完成时,这个阶段将作为提供函数的参数执行。
|
<U> CompletionStage<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
返回一个新的CompletionStage,当此阶段正常完成时,将使用此阶段的默认异步执行工具执行,此阶段作为提供的函数的参数。
|
<U> CompletionStage<U> |
thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,将使用提供的执行程序执行此阶段的结果作为提供函数的参数。
|
CompletionStage<Void> |
thenRun(Runnable action)
返回一个新的CompletionStage,当此阶段正常完成时,执行给定的操作。
|
CompletionStage<Void> |
thenRunAsync(Runnable action)
返回一个新的CompletionStage,当此阶段正常完成时,使用此阶段的默认异步执行工具执行给定的操作。
|
CompletionStage<Void> |
thenRunAsync(Runnable action, Executor executor)
返回一个新的CompletionStage,当此阶段正常完成时,使用提供的执行程序执行给定的操作。
|
CompletableFuture<T> |
toCompletableFuture()
返回一个 CompletableFuture ,保持与此阶段相同的完成属性。
|
CompletionStage<T> |
whenComplete(BiConsumer<? super T,? super Throwable> action)
返回与此阶段相同的结果或异常的新的CompletionStage,当此阶段完成时,将使用结果(或
null 如果没有))和此阶段的异常(或
null 如果没有))执行给定操作。
|
CompletionStage<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
返回一个与此阶段相同结果或异常的新CompletionStage,当此阶段完成时,执行给定操作将使用此阶段的默认异步执行工具执行给定操作,其结果(或
null 如果没有))和异常(或
null 如果没有)这个阶段作为参数。
|
CompletionStage<T> |
whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
返回与此阶段相同结果或异常的新CompletionStage,当此阶段完成时,使用提供的执行程序执行给定操作,如果没有,则使用结果(或
null 如果没有))和异常(或
null 如果没有))作为论据。
|
<U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn)
CompletionStage
文档,了解覆盖异常完成的规则。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn)
CompletionStage
有关特殊完成规则的文档。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
CompletionStage
文档, 了解完整的规则。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
CompletionStage<Void> thenAccept(Consumer<? super T> action)
CompletionStage
覆盖特殊的完成规则的文档。
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStage
覆盖特殊的完成规则的文档。
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStage
有关特殊完成规则的文档。
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
CompletionStage<Void> thenRun(Runnable action)
CompletionStage
文档,了解覆盖异常完成的规则。
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> thenRunAsync(Runnable action)
CompletionStage
文档,了解覆盖异常完成的规则。
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStage
文档, 了解完整的规则。
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
<U,V> CompletionStage<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
文档。
U
- 其他CompletionStage的结果类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
<U,V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
CompletionStage
文档,了解有关特殊完成的规则。
U
- 其他CompletionStage的结果的类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
<U,V> CompletionStage<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
CompletionStage
文档。
U
- 其他CompletionStage的结果的类型
V
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
<U> CompletionStage<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage
有关特殊完成规则的文档。
U
- 其他CompletionStage的结果的类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
U
- 其他CompletionStage的结果的类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
U
- 其他CompletionStage的结果的类型
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行程序用于异步执行
CompletionStage<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStage
覆盖特殊的完成规则的文档。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStage
文档,了解覆盖异常完成的规则。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
<U> CompletionStage<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
覆盖特殊的完成规则的文档。
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage
覆盖特殊的完成规则的文档。
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
CompletionStage
文档, 了解完整的规则。
U
- 函数的返回类型
other
- 其他CompletionStage
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
CompletionStage<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
覆盖特殊的完成规则的文档。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage
文档,了解覆盖异常完成的规则。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
CompletionStage
文档,了解覆盖异常完成的规则。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 用于异步执行的执行程序
CompletionStage<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStage
文档。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStage
覆盖特殊的完成规则的文档。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage
文档, 了解完整的规则。
other
- 其他CompletionStage
action
- 在完成返回的CompletionStage之前执行的操作
executor
- 执行器用于异步执行
<U> CompletionStage<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
文档,了解覆盖异常完成的规则。
U
- 返回的CompletionStage结果的类型
fn
- 返回一个新的CompletionStage的函数
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
CompletionStage
文档, 了解完整的规则。
U
- 返回的CompletionStage结果的类型
fn
- 返回一个新的CompletionStage的函数
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
CompletionStage
文档, 了解完整的规则。
U
- 返回的CompletionStage结果的类型
fn
- 返回新的CompletionStage的函数
executor
- 执行程序用于异步执行
CompletionStage<T> exceptionally(Function<Throwable,? extends T> fn)
fn
- 如果此CompletionStage异常完成,则用于计算返回的CompletionStage的值的函数
CompletionStage<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
null
如果没有))和此阶段的异常(或
null
如果没有))执行给定操作。
action
- 要执行的动作
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
null
如果没有))和异常(或
null
如果没有)作为参数。
action
- 要执行的动作
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
null
如果没有))和异常(或
null
如果没有))作为论据。
action
- 要执行的动作
executor
- 用于异步执行的执行器
<U> CompletionStage<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
null
如果没有))和此阶段的异常(或null
如果没有))调用给定函数。
U
- 函数的返回类型
fn
- 用于计算返回的CompletionStage的值的函数
executor
- 执行器用于异步执行
CompletableFuture<T> toCompletableFuture()
CompletableFuture
,保持与这个阶段相同的完成属性。
如果这个阶段已经是一个CompletableFuture,那么这个方法本身就可以返回这个阶段。
否则,调用此方法可能相当于thenApply(x -> x)
,但返回一个类型为CompletableFuture
的实例。
没有选择与他人互操作的CompletionStage实现可能会UnsupportedOperationException
。
UnsupportedOperationException
- 如果此实现不与CompletableFuture进行互操作