Интерфейс CompletionStage<T>
- Параметры типа:
-
T- тип значений, которые производит или потребляет стадия
- Все известные реализующие классы:
CompletableFuture
public interface CompletionStage<T>
- Вычисление, выполняемое стадией, может быть выражено как функция, потребитель или задача (используя методы с именами, включающими apply, accept или run соответственно), в зависимости от того, требует ли она аргументов и/или производит результаты. Например:
Дополнительная форма (compose) позволяет создавать цепочки вычислений из функций, возвращающих стадии завершения.stage.thenApply(x -> square(x)) .thenAccept(x -> System.out.print(x)) .thenRun(() -> System.out.println());Любой аргумент для вычисления стадии — это результат вычисления запускающей стадии.
- Выполнение одной стадии может быть инициировано завершением одной стадии, или двумя стадиями, или любой из двух стадий. Зависимости от одной стадии организованы с помощью методов с префиксом then. Те, которые инициируются завершением обеих двух стадий, могут combine результаты или эффекты, используя соответствующие методы. Те, которые инициируются любой из двух стадий, не гарантируют, что результаты или эффекты используются для вычисления зависимой стадии.
- Зависимости между стадиями контролируют инициирование вычислений, но не гарантируют никакой определенной последовательности. Кроме того, выполнение вычислений новой стадии может быть организовано тремя способами: по умолчанию, по умолчанию асинхронно (используя методы с суффиксом async, которые используют средства асинхронного выполнения стадии по умолчанию) или пользовательским (через предоставленный
Executor). Свойства выполнения режимов по умолчанию и async задаются реализациями CompletionStage, а не этим интерфейсом. Методы с явными аргументами Executor могут иметь произвольные свойства выполнения и даже могут не поддерживать одновременное выполнение, но они организованы для обработки таким образом, чтобы учитывать асинхронность. - Две формы методов (
handleиwhenComplete) поддерживают безусловное вычисление, независимо от того, завершилась ли запускающая стадия нормально или с исключением. Методexceptionallyподдерживает вычисление только при завершении запускающей стадии с исключением, вычисляя результат замены, аналогично ключевому слову javacatch. Во всех остальных случаях, если вычисление стадии завершается внезапно с (непроверенным) исключением или ошибкой, все зависимые стадии, требующие его завершения, завершаются с исключением также, сCompletionException, содержащим исключение в качестве причины. Если стадия зависит от обеих двух стадий, и обе завершаются с исключением, то CompletionException может соответствовать любому из этих исключений. Если стадия зависит от любой из двух других, и только одна из них завершается с исключением, никакие гарантии не даются относительно того, завершается ли зависимая стадия нормально или с исключением. В случае методаwhenComplete, когда предоставленное действие само сталкивается с исключением, то стадия завершается с этим исключением, если только исходная стадия также не завершилась с исключением, в этом случае исключительное завершение от исходной стадии отдаётся предпочтение и распространяется на зависимую стадию.
Все методы следуют указанным выше спецификациям запуска, выполнения и исключительного завершения (которые не повторяются в отдельных спецификациях методов). Кроме того, в то время как аргументы, используемые для передачи результата завершения (то есть, для параметров типа T) для методов, принимающих их, могут быть null, передача значения null для любого другого параметра приведет к тому, что будет брошено NullPointerException.
Форма метода handle — это наиболее общий способ создания стадии продолжения, безусловно выполняющий вычисление, которому даны как результат, так и исключение (если таковое имеется) запускающей CompletionStage, и вычисляющий произвольный результат. Метод whenComplete аналогичен, но сохраняет результат запускающей стадии вместо вычисления нового. Поскольку нормальный результат стадии может быть null, оба метода должны иметь вычисление, структурированное таким образом:
(result, exception) -> {
if (exception == null) {
// triggering stage completed normally
} else {
// triggering stage completed exceptionally
}
} Этот интерфейс не определяет методы для первоначального создания, принудительного завершения нормально или с исключением, проверки статуса или результатов завершения или ожидания завершения стадии. Реализации CompletionStage могут предоставлять средства для достижения таких эффектов, по мере необходимости. Метод toCompletableFuture() обеспечивает межработоспособность между различными реализациями этого интерфейса, предоставив общий тип преобразования.
- С:
- 1.8
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
CompletionStage |
acceptEither |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленного действия. |
CompletionStage |
acceptEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленного действия. |
CompletionStage |
acceptEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленного действия. |
<U> CompletionStage |
applyToEither |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленной функции. |
<U> CompletionStage |
applyToEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленной функции. |
<U> CompletionStage |
applyToEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленной функции. |
CompletionStage |
exceptionally |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции. |
default CompletionStage |
exceptionallyAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции, используя стандартный асинхронный механизм выполнения этого этапа. |
default CompletionStage |
exceptionallyAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции, используя предоставленный Executor. |
default CompletionStage |
exceptionallyCompose |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, компонуется с использованием результатов предоставленной функции, применённой к исключению этого этапа. |
default CompletionStage |
exceptionallyComposeAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, компонуется с использованием результатов предоставленной функции, применённой к исключению этого этапа, используя стандартный асинхронный механизм выполнения этого этапа. |
default CompletionStage |
exceptionallyComposeAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится с исключением, компонуется с использованием результатов предоставленной функции, применённой к исключению этого этапа, используя предоставленный Executor. |
<U> CompletionStage |
handle |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально или с исключением, выполняется с результатом и исключением этого этапа в качестве аргументов для предоставленной функции. |
<U> CompletionStage |
handleAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально или с исключением, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с результатом и исключением этого этапа в качестве аргументов для предоставленной функции. |
<U> CompletionStage |
handleAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально или с исключением, выполняется с использованием предоставленного исполнителя, с результатом и исключением этого этапа в качестве аргументов для предоставленной функции. |
CompletionStage |
runAfterBoth |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняет предоставленное действие. |
CompletionStage |
runAfterBothAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняет предоставленное действие с использованием стандартного асинхронного механизма выполнения этого этапа. |
CompletionStage |
runAfterBothAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняет предоставленное действие с использованием предоставленного исполнителя. |
CompletionStage |
runAfterEither |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет предоставленное действие. |
CompletionStage |
runAfterEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет предоставленное действие с использованием стандартного асинхронного механизма выполнения этого этапа. |
CompletionStage |
runAfterEitherAsync |
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет предоставленное действие с использованием предоставленного исполнителя. |
CompletionStage |
thenAccept |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с результатом этого этапа в качестве аргумента для предоставленного действия. |
CompletionStage |
thenAcceptAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с результатом этого этапа в качестве аргумента для предоставленного действия. |
CompletionStage |
thenAcceptAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием предоставленного Executor, с результатом этого этапа в качестве аргумента для предоставленного действия. |
<U> CompletionStage |
thenAcceptBoth |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage |
thenAcceptBothAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage |
thenAcceptBothAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленного действия. |
<U> CompletionStage |
thenApply |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с результатом этого этапа в качестве аргумента для предоставленной функции. |
<U> CompletionStage |
thenApplyAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с результатом этого этапа в качестве аргумента для предоставленной функции. |
<U> CompletionStage |
thenApplyAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием предоставленного Executor, с результатом этого этапа в качестве аргумента для предоставленной функции. |
<U, |
thenCombine |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленной функции. |
<U, |
thenCombineAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленной функции. |
<U, |
thenCombineAsync |
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершатся нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленной функции. |
<U> CompletionStage |
thenCompose |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией. |
<U> CompletionStage |
thenComposeAsync |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемый с использованием стандартного асинхронного механизма выполнения этого этапа. |
<U> CompletionStage |
thenComposeAsync |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемый с использованием предоставленного Executor. |
CompletionStage |
thenRun |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняет предоставленное действие. |
CompletionStage |
thenRunAsync |
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняет предоставленное действие с использованием стандартного асинхронного механизма выполнения этого этапа. |
CompletionStage |
thenRunAsync |
Возвращает новый CompletionStage, который, когда этот этап завершается нормально, выполняет заданный метод с использованием предоставленного Executor. |
CompletableFuture |
toCompletableFuture() |
Возвращает CompletableFuture, сохраняя те же свойства завершения, что и у этого этапа. |
CompletionStage |
whenComplete |
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод, когда этот этап завершается. |
CompletionStage |
whenCompleteAsync |
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод с использованием стандартного асинхронного механизма выполнения этого этапа, когда этот этап завершается. |
CompletionStage |
whenCompleteAsync |
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод с использованием предоставленного Executor, когда этот этап завершается. |
Подробное описание методов
thenApply
<U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn)
Этот метод аналогичен Optional.map и Stream.map.
См. CompletionStage документацию для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenApplyAsync
<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenApplyAsync
<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage -
executor- executor для использования в асинхронном выполнении - Возвращает:
- новая CompletionStage
thenAccept
CompletionStage<Void> thenAccept(Consumer<? super T> action)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenAcceptAsync
CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenAcceptAsync
CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage -
executor- executor для использования в асинхронном выполнении - Возвращает:
- новая CompletionStage
thenRun
CompletionStage<Void> thenRun(Runnable action)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenRunAsync
CompletionStage<Void> thenRunAsync(Runnable action)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenRunAsync
CompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры:
-
action- действие, выполняемое перед завершением возвращаемой CompletionStage -
executor- executor для использования в асинхронном выполнении - Возвращает:
- новая CompletionStage
thenCombine
<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 - Возвращает:
- новая CompletionStage
thenCombineAsync
<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 - Возвращает:
- новая CompletionStage
thenCombineAsync
<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- executor для использования в асинхронном выполнении - Возвращает:
- новая CompletionStage
thenAcceptBoth
<U> CompletionStage<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage документацию для правил, охватывающих исключительное завершение.- Параметры типа:
-
U- тип результата другой CompletionStage - Параметры:
-
other- другая CompletionStage -
action- действие, выполняемое перед завершением возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
thenAcceptBothAsync
<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
CompletionStage для правил, охватывающих исключительное завершение.- Type Parameters:
-
U- тип результата другого CompletionStage - Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
thenAcceptBothAsync
<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
CompletionStage для правил, охватывающих исключительное завершение.- Type Parameters:
-
U- тип результата другого CompletionStage - Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage -
executor- исполнитель, который следует использовать для асинхронного выполнения - Returns:
- новый CompletionStage
runAfterBoth
CompletionStage<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
runAfterBothAsync
CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
runAfterBothAsync
CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage -
executor- исполнитель, который следует использовать для асинхронного выполнения - Returns:
- новый CompletionStage
applyToEither
<U> CompletionStage<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage для правил, охватывающих исключительное завершение.- Type Parameters:
-
U- тип возвращаемого значения функции - Parameters:
-
other- другой CompletionStage -
fn- функция, используемая для вычисления значения возвращаемого CompletionStage - Returns:
- новый CompletionStage
applyToEitherAsync
<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
CompletionStage для правил, охватывающих исключительное завершение.- Type Parameters:
-
U- тип возвращаемого значения функции - Parameters:
-
other- другой CompletionStage -
fn- функция, используемая для вычисления значения возвращаемого CompletionStage - Returns:
- новый CompletionStage
applyToEitherAsync
<U> CompletionStage<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
CompletionStage для правил, охватывающих исключительное завершение.- Type Parameters:
-
U- тип возвращаемого значения функции - Parameters:
-
other- другой CompletionStage -
fn- функция, используемая для вычисления значения возвращаемого CompletionStage -
executor- исполнитель, который следует использовать для асинхронного выполнения - Returns:
- новый CompletionStage
acceptEither
CompletionStage<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
acceptEitherAsync
CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
acceptEitherAsync
CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage -
executor- исполнитель, который следует использовать для асинхронного выполнения - Returns:
- новый CompletionStage
runAfterEither
CompletionStage<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
runAfterEitherAsync
CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStage для правил, охватывающих исключительное завершение.- Parameters:
-
other- другой CompletionStage -
action- действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage - Returns:
- новый CompletionStage
runAfterEitherAsync
CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStage для правил, охватывающих исключительное завершение.- Параметры:
-
other- другая CompletionStage -
action- действие, которое нужно выполнить перед завершением возвращаемой CompletionStage -
executor- исполнитель, который нужно использовать для асинхронного выполнения - Возвращает:
- новая CompletionStage
thenCompose
<U> CompletionStage<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Когда эта ступень завершается нормально, заданная функция вызывается с результатом этой ступени в качестве аргумента, возвращая другую CompletionStage. Когда эта ступень завершается нормально, CompletionStage, возвращаемая этим методом, завершается тем же значением.
Для обеспечения прогресса предоставленная функция должна обеспечить конечное завершение своего результата.
Этот метод аналогичен Optional.flatMap и Stream.flatMap.
См. документацию CompletionStage для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип результата возвращаемой CompletionStage - Параметры:
-
fn- функция, используемая для вычисления другой CompletionStage - Возвращает:
- новая CompletionStage
thenComposeAsync
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
Когда эта ступень завершается нормально, заданная функция вызывается с результатом этой ступени в качестве аргумента, возвращая другую CompletionStage. Когда эта ступень завершается нормально, CompletionStage, возвращаемая этим методом, завершается тем же значением.
Для обеспечения прогресса предоставленная функция должна обеспечить конечное завершение своего результата.
См. документацию CompletionStage для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип результата возвращаемой CompletionStage - Параметры:
-
fn- функция, используемая для вычисления другой CompletionStage - Возвращает:
- новая CompletionStage
thenComposeAsync
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
Когда эта ступень завершается нормально, заданная функция вызывается с результатом этой ступени в качестве аргумента, возвращая другую CompletionStage. Когда эта ступень завершается нормально, CompletionStage, возвращаемая этим методом, завершается тем же значением.
Для обеспечения прогресса предоставленная функция должна обеспечить конечное завершение своего результата.
См. документацию CompletionStage для правил, охватывающих исключительное завершение.
- Параметры типа:
-
U- тип результата возвращаемой CompletionStage - Параметры:
-
fn- функция, используемая для вычисления другой CompletionStage -
executor- исполнитель, который нужно использовать для асинхронного выполнения - Возвращает:
- новая CompletionStage
handle
<U> CompletionStage<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
Когда эта ступень завершена, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов, и результат функции используется для завершения возвращаемой ступени.
- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
handleAsync
<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
Когда эта ступень завершена, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов, и результат функции используется для завершения возвращаемой ступени.
- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage - Возвращает:
- новая CompletionStage
handleAsync
<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
Когда эта ступень завершена, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов, и результат функции используется для завершения возвращаемой ступени.
- Параметры типа:
-
U- тип возвращаемого значения функции - Параметры:
-
fn- функция, используемая для вычисления значения возвращаемой CompletionStage -
executor- исполнитель, который нужно использовать для асинхронного выполнения - Возвращает:
- новая CompletionStage
whenComplete
CompletionStage<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
Когда эта ступень завершена, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов. Возвращаемая ступень завершается, когда действие завершается.
В отличие от метода handle, этот метод не предназначен для перевода результатов завершения, поэтому заданное действие не должно генерировать исключение. Однако, если это произойдет, применяются следующие правила: если эта ступень завершилась нормально, но заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением, сгенерированным заданным действием. Или, если эта ступень завершилась с исключением, и заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением этой ступени.
- Параметры:
-
action- действие, которое нужно выполнить - Возвращает:
- новая CompletionStage
whenCompleteAsync
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
Когда эта ступень завершена, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов. Возвращаемая ступень завершается, когда действие завершается.
В отличие от метода handleAsync, этот метод не предназначен для перевода результатов завершения, поэтому заданное действие не должно генерировать исключение. Однако, если это произойдет, применяются следующие правила: если эта ступень завершилась нормально, но заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением, сгенерированным заданным действием. Или, если эта ступень завершилась с исключением, и заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением этой ступени.
- Параметры:
-
action- действие, которое нужно выполнить - Возвращает:
- новая CompletionStage
whenCompleteAsync
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
Когда эта ступень завершена, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этой ступени в качестве аргументов. Возвращаемая ступень завершается, когда действие завершается.
В отличие от метода handleAsync, этот метод не предназначен для перевода результатов завершения, поэтому заданное действие не должно генерировать исключение. Однако, если это произойдет, применяются следующие правила: если эта ступень завершилась нормально, но заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением, сгенерированным заданным действием. Или, если эта ступень завершилась с исключением, и заданное действие генерирует исключение, тогда возвращаемая ступень завершается с исключением этой ступени.
- Параметры:
-
action- действие, которое нужно выполнить -
executor- исполнитель, который нужно использовать для асинхронного выполнения - Возвращает:
- новая CompletionStage
исключительно
CompletionStage<T> exceptionally(Function<Throwable,? extends T> fn)
- Параметры:
-
fn- функция, которая используется для вычисления значения возвращаемого CompletionStage, если этот CompletionStage завершился с исключением - Возвращает:
- новый CompletionStage
исключительноАсинхронно
default CompletionStage<T> exceptionallyAsync(Function<Throwable,? extends T> fn)
- Требования к реализации:
- Стандартная реализация вызывает
handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>), перенаправляя наhandleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>)при возникновении исключения, а затемthenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>)для результата. - Параметры:
-
fn- функция, которая используется для вычисления значения возвращаемого CompletionStage, если этот CompletionStage завершился с исключением - Возвращает:
- новый CompletionStage
- С:
- 12
исключительноАсинхронно
default CompletionStage<T> exceptionallyAsync(Function<Throwable,? extends T> fn, Executor executor)
- Требования к реализации:
- Стандартная реализация вызывает
handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>), перенаправляя наhandleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>)при возникновении исключения, а затемthenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>)для результата. - Параметры:
-
fn- функция, которая используется для вычисления значения возвращаемого CompletionStage, если этот CompletionStage завершился с исключением -
executor- executor для использования в асинхронном выполнении - Возвращает:
- новый CompletionStage
- С:
- 12
исключительноКомпонует
default CompletionStage<T> exceptionallyCompose(Function<Throwable,? extends CompletionStage<T>> fn)
- Требования к реализации:
- Стандартная реализация вызывает
handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>), вызывая заданную функцию при возникновении исключения, а затемthenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>)для результата. - Параметры:
-
fn- функция, которая используется для вычисления возвращаемого CompletionStage, если этот CompletionStage завершился с исключением - Возвращает:
- новый CompletionStage
- С:
- 12
исключительноКомпонуетАсинхронно
default CompletionStage<T> exceptionallyComposeAsync(Function<Throwable,? extends CompletionStage<T>> fn)
- Требования к реализации:
- Стандартная реализация вызывает
handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>), перенаправляя наhandleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>)при возникновении исключения, а затемthenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>)для результата. - Параметры:
-
fn- функция, которая используется для вычисления возвращаемого CompletionStage, если этот CompletionStage завершился с исключением - Возвращает:
- новый CompletionStage
- С:
- 12
исключительноКомпонуетАсинхронно
default CompletionStage<T> exceptionallyComposeAsync(Function<Throwable,? extends CompletionStage<T>> fn, Executor executor)
- Требования к реализации:
- Стандартная реализация вызывает
handle(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>), перенаправляя наhandleAsync(java.util.function.BiFunction<? super T, java.lang.Throwable, ? extends U>)при возникновении исключения, а затемthenCompose(java.util.function.Function<? super T, ? extends java.util.concurrent.CompletionStage<U>>)для результата. - Параметры:
-
fn- функция, которая используется для вычисления возвращаемого CompletionStage, если этот CompletionStage завершился с исключением -
executor- executor для использования в асинхронном выполнении - Возвращает:
- новый CompletionStage
- С:
- 12
toCompletableFuture
CompletableFuture<T> toCompletableFuture()
CompletableFuture, сохраняя те же свойства завершения, что и у этой стадии. Если эта стадия уже является CompletableFuture, этот метод может вернуть эту стадию. В противном случае вызов этого метода может быть эквивалентным по эффекту thenApply(x -> x), но возвращающим экземпляр типа CompletableFuture.- Возвращает:
- CompletableFuture
© 1993, 2023, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/21/docs/api/java.base/java/util/concurrent/CompletionStage.html