Spec-Zone.ru › OpenJDK 17

Интерфейс CompletionStage<T>

Все известные реализующие классы:
CompletableFuture
public interface CompletionStage<T>
Этап потенциально асинхронного вычисления, выполняющий действие или вычисляющий значение, когда завершается другой CompletionStage. Этап завершается при завершении вычисления, но это может, в свою очередь, запустить другие зависимые этапы. Функциональность, определенная в этом интерфейсе, имеет всего несколько основных форм, которые расширяются до более широкого набора методов для захвата различных стилей использования:
  • Вычисление, выполняемое этапом, может быть выражено как Function, Consumer или Runnable (используя методы с названиями, включающими apply, accept или run соответственно), в зависимости от того, требует ли оно аргументов и/или производит результаты. Например:
     
     stage.thenApply(x -> square(x))
          .thenAccept(x -> System.out.print(x))
          .thenRun(() -> System.out.println());
    Дополнительная форма (compose) позволяет создавать цепочки вычислений из функций, возвращающих CompletionStage.

    Любой аргумент вычисления этапа является результатом вычисления запускающего этапа.

  • Выполнение одного этапа может быть запущено завершением одного этапа, или обоих двух этапов, или любого из двух этапов. Зависимости от одного этапа организуются с помощью методов с префиксом then. Те, которые запускаются завершением обоих двух этапов, могут combine свои результаты или эффекты, используя соответствующие методы. Те, которые запускаются любым из двух этапов, не гарантируют, какой из результатов или эффектов используется для вычисления зависимого этапа.
  • Зависимости между этапами контролируют запуск вычислений, но не гарантируют никакой особой последовательности. Кроме того, выполнение вычислений нового этапа может быть организовано тремя способами: по умолчанию, по умолчанию асинхронно (используя методы с суффиксом async, которые используют стандартную асинхронную обработку этапа) или пользовательским (через предоставленный Executor). Свойства выполнения режимов по умолчанию и асинхронного режима определяются реализациями CompletionStage, а не этим интерфейсом. Методы с явными аргументами Executor могут иметь произвольные свойства выполнения и могут даже не поддерживать параллельное выполнение, но организованы для обработки таким образом, чтобы учитывать асинхронность.
  • Две формы методов (handle и whenComplete) поддерживают безусловное вычисление независимо от того, завершился ли запускающий этап нормально или с исключением. Метод exceptionally поддерживает вычисление только при завершении запускающего этапа с исключением, вычисляя заменяющий результат, аналогично ключевому слову java catch. Во всех остальных случаях, если вычисление этапа завершается внезапно с (непроверяемым) исключением или ошибкой, все зависимые этапы, требующие его завершения, также завершаются с исключением, с 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() обеспечивает межсетевое взаимодействие между различными реализациями этого интерфейса, предоставляя общий тип преобразования.

Since:
1.8

Краткое описание методов

Модификатор и тип Метод Описание
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, который, когда эта стадия завершается с исключением, выполняется с исключением этой стадии в качестве аргумента для предоставленной функции.
default CompletionStage<T> exceptionallyAsync(Function<Throwable,? extends T> fn)
Возвращает новый CompletionStage, который, когда эта стадия завершается с исключением, выполняется с исключением этой стадии в качестве аргумента для предоставленной функции, используя стандартное средство асинхронного выполнения этой стадии.
default CompletionStage<T> exceptionallyAsync(Function<Throwable,? extends T> fn, Executor executor)
Возвращает новый CompletionStage, который, когда эта стадия завершается с исключением, выполняется с исключением этой стадии в качестве аргумента для предоставленной функции, используя предоставленный Executor.
default CompletionStage<T> exceptionallyCompose(Function<Throwable,? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который, когда эта стадия завершается с исключением, компонуется с использованием результатов предоставленной функции, примененной к исключению этой стадии.
default CompletionStage<T> exceptionallyComposeAsync(Function<Throwable,? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который, когда эта стадия завершается с исключением, компонуется с использованием результатов предоставленной функции, примененной к исключению этой стадии, используя стандартное средство асинхронного выполнения этой стадии.
default CompletionStage<T> exceptionallyComposeAsync(Function<Throwable,? extends CompletionStage<T>> fn, Executor executor)
Возвращает новый CompletionStage, который, когда эта стадия завершается с исключением, компонуется с использованием результатов предоставленной функции, примененной к исключению этой стадии, используя предоставленный Executor.
<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<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, который, когда эта стадия завершается нормально, выполняется с использованием предоставленного Executor, с результатом этой стадии в качестве аргумента для предоставленного действия.
<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, который, когда эта стадия завершается нормально, выполняется с использованием предоставленного Executor, с результатом этой стадии в качестве аргумента для предоставленной функции.
<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, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией.
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемой с использованием стандартного средства асинхронного выполнения этой стадии.
<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемой с использованием предоставленного Executor.
CompletionStage<Void> thenRun(Runnable action)
Возвращает новый CompletionStage, который, когда эта стадия завершается нормально, выполняет предоставленное действие.
CompletionStage<Void> thenRunAsync(Runnable action)
Возвращает новый CompletionStage, который, когда эта стадия завершается нормально, выполняет предоставленное действие с использованием стандартного средства асинхронного выполнения этой стадии.
CompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполнит заданный метод с помощью предоставленного Executor.
CompletableFuture<T> toCompletableFuture()
Возвращает CompletableFuture, сохраняя те же свойства завершения, что и у этого этапа.
CompletionStage<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод, когда этот этап завершается.
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод, используя стандартные асинхронные средства выполнения этого этапа, когда этот этап завершается.
CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
Возвращает новый CompletionStage с тем же результатом или исключением, что и у этого этапа, который выполняет заданный метод с помощью предоставленного Executor, когда этот этап завершается.

Подробное описание методов

thenApply

<U> CompletionStage<U> thenApply(Function<? super T,? extends U> fn)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с результатом этой фазы в качестве аргумента для предоставленной функции.

Этот метод аналогичен Optional.map и Stream.map.

См. документацию CompletionStage для правил, охватывающих исключительное завершение.

Тип параметров:
U - тип возвращаемого значения функции
Параметры:
fn - функция, используемая для вычисления значения возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenApplyAsync

<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с результатом этой фазы в качестве аргумента для предоставленной функции. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Тип параметров:
U - тип возвращаемого значения функции
Параметры:
fn - функция, используемая для вычисления значения возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenApplyAsync

<U> CompletionStage<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с использованием предоставленного Executor, с результатом этой фазы в качестве аргумента для предоставленной функции. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Тип параметров:
U - тип возвращаемого значения функции
Параметры:
fn - функция, используемая для вычисления значения возвращаемой CompletionStage
executor - executor для использования при асинхронном выполнении
Возвращает:
новая CompletionStage

thenAccept

CompletionStage<Void> thenAccept(Consumer<? super T> action)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с результатом этой фазы в качестве аргумента для предоставленного действия. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenAcceptAsync

CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с результатом этой фазы в качестве аргумента для предоставленного действия. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenAcceptAsync

CompletionStage<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняется с использованием предоставленного Executor, с результатом этой фазы в качестве аргумента для предоставленного действия. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
executor - executor для использования при асинхронном выполнении
Возвращает:
новая CompletionStage

thenRun

CompletionStage<Void> thenRun(Runnable action)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняет заданное действие. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenRunAsync

CompletionStage<Void> thenRunAsync(Runnable action)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняет заданное действие с использованием стандартного асинхронного механизма выполнения этой фазы. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenRunAsync

CompletionStage<Void> thenRunAsync(Runnable action, Executor executor)
Возвращает новую CompletionStage, которая, когда эта фаза завершается нормально, выполняет заданное действие с использованием предоставленного 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, которая, когда эта и другая заданная фаза оба завершаются нормально, выполняется с двумя результатами в качестве аргументов для предоставленной функции. См. документацию 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, которая, когда эта и другая заданная фаза оба завершаются нормально, выполняется с использованием стандартного асинхронного механизма выполнения этой фазы, с двумя результатами в качестве аргументов для предоставленной функции. См. документацию 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, которая, когда эта и другая заданная фаза оба завершаются нормально, выполняется с использованием предоставленного 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, которая, когда эта и другая заданная фаза оба завершаются нормально, выполняется с двумя результатами в качестве аргументов для предоставленного действия. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Тип параметров:
U - тип результата другой CompletionStage
Параметры:
other - другая CompletionStage
action - действие, которое выполняется перед завершением возвращаемой CompletionStage
Возвращает:
новая CompletionStage

thenAcceptBothAsync

<U> CompletionStage<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершаются нормально, выполняется с помощью стандартного асинхронного механизма выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленного действия. См. 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, который, когда этот и другой заданный этап оба завершаются нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленного действия. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Type Parameters:
U - тип результата другого CompletionStage
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
executor - исполнитель для использования в асинхронном выполнении
Returns:
новый CompletionStage

runAfterBoth

CompletionStage<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершаются нормально, выполняет указанное действие. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

runAfterBothAsync

CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершаются нормально, выполняет указанное действие с помощью стандартного асинхронного механизма выполнения этого этапа. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

runAfterBothAsync

CompletionStage<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершаются нормально, выполняет указанное действие с использованием предоставленного исполнителя. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
executor - исполнитель для использования в асинхронном выполнении
Returns:
новый CompletionStage

applyToEither

<U> CompletionStage<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
Возвращает новый CompletionStage, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленной функции. См. 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, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с помощью стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленной функции. См. 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, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленной функции. См. 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, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленного действия. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

acceptEitherAsync

CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
Возвращает новый CompletionStage, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с помощью стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленного действия. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

acceptEitherAsync

CompletionStage<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
Возвращает новый CompletionStage, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленного действия. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
executor - исполнитель для использования в асинхронном выполнении
Returns:
новый CompletionStage

runAfterEither

CompletionStage<Void> runAfterEither(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняет указанное действие. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

runAfterEitherAsync

CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда либо этот, либо другой заданный этап завершаются нормально, выполняет указанное действие с помощью стандартного асинхронного механизма выполнения этого этапа. См. CompletionStage документацию для правил, охватывающих исключительное завершение.
Parameters:
other - другой CompletionStage
action - действие, которое должно быть выполнено перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

runAfterEitherAsync

CompletionStage<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет заданное действие с помощью предоставленного исполнителя. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Параметры:
other - другой CompletionStage
action - действие, которое нужно выполнить перед завершением возвращаемого CompletionStage
executor - используемый для асинхронного выполнения Executor
Возвращает:
новый CompletionStage

thenCompose

<U> CompletionStage<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый заданной функцией.

Когда этот этап завершается нормально, заданная функция вызывается с результатом этого этапа в качестве аргумента, возвращая другой 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. Когда этот этап завершается нормально, CompletionStage, возвращаемый этим методом, завершается тем же значением.

Для обеспечения прогресса, предоставленная функция должна обеспечить конечное завершение своего результата.

См. документацию CompletionStage для правил, охватывающих исключительное завершение.

Параметры типа:
U - тип результата возвращаемого CompletionStage
Параметры:
fn - функция для вычисления другого CompletionStage
Возвращает:
новый CompletionStage

thenComposeAsync

<U> CompletionStage<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращаемый заданной функцией, выполняемой с помощью предоставленного Executor.

Когда этот этап завершается нормально, заданная функция вызывается с результатом этого этапа в качестве аргумента, возвращая другой CompletionStage. Когда этот этап завершается нормально, CompletionStage, возвращаемый этим методом, завершается тем же значением.

Для обеспечения прогресса, предоставленная функция должна обеспечить конечное завершение своего результата.

См. документацию CompletionStage для правил, охватывающих исключительное завершение.

Параметры типа:
U - тип результата возвращаемого CompletionStage
Параметры:
fn - функция для вычисления другого CompletionStage
executor - используемый для асинхронного выполнения Executor
Возвращает:
новый CompletionStage

handle

<U> CompletionStage<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с результатом и исключением этого этапа в качестве аргументов предоставленной функции.

Когда этот этап завершен, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов, а результат функции используется для завершения возвращаемого этапа.

Параметры типа:
U - тип возвращаемого результата функции
Параметры:
fn - функция для вычисления значения возвращаемого CompletionStage
Возвращает:
новый CompletionStage

handleAsync

<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с использованием стандартных асинхронных возможностей этого этапа, с результатом и исключением этого этапа в качестве аргументов предоставленной функции.

Когда этот этап завершен, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов, а результат функции используется для завершения возвращаемого этапа.

Параметры типа:
U - тип возвращаемого результата функции
Параметры:
fn - функция для вычисления значения возвращаемого CompletionStage
Возвращает:
новый CompletionStage

handleAsync

<U> CompletionStage<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с помощью предоставленного исполнителя, с результатом и исключением этого этапа в качестве аргументов предоставленной функции.

Когда этот этап завершен, заданная функция вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов, а результат функции используется для завершения возвращаемого этапа.

Параметры типа:
U - тип возвращаемого результата функции
Параметры:
fn - функция для вычисления значения возвращаемого CompletionStage
executor - используемый для асинхронного выполнения Executor
Возвращает:
новый CompletionStage

whenComplete

CompletionStage<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполняет заданное действие при завершении этого этапа.

Когда этот этап завершен, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов. Возвращаемый этап завершается, когда действие возвращает значение.

В отличие от метода handle, этот метод не предназначен для преобразования результатов завершения, поэтому заданное действие не должно вызывать исключение. Однако, если это произойдет, применяются следующие правила: если этот этап завершился нормально, но заданное действие вызывает исключение, то возвращаемый этап завершается с исключением, выброшенным заданным действием. Или, если этот этап завершился с исключением, и заданное действие вызывает исключение, то возвращаемый этап завершается с исключением этого этапа.

Параметры:
action - выполняемое действие
Возвращает:
новый CompletionStage

whenCompleteAsync

CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполняет заданное действие с использованием стандартных асинхронных возможностей этого этапа при завершении этого этапа.

Когда этот этап завершен, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов. Возвращаемый этап завершается, когда действие возвращает значение.

В отличие от метода handleAsync, этот метод не предназначен для преобразования результатов завершения, поэтому заданное действие не должно вызывать исключение. Однако, если это произойдет, применяются следующие правила: если этот этап завершился нормально, но заданное действие вызывает исключение, то возвращаемый этап завершается с исключением, выброшенным заданным действием. Или, если этот этап завершился с исключением, и заданное действие вызывает исключение, то возвращаемый этап завершается с исключением этого этапа.

Параметры:
action - выполняемое действие
Возвращает:
новый CompletionStage

whenCompleteAsync

CompletionStage<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполняет заданное действие с использованием предоставленного исполнителя при завершении этого этапа.

Когда этот этап завершен, заданное действие вызывается с результатом (или null если его нет) и исключением (или null если его нет) этого этапа в качестве аргументов. Возвращаемый этап завершается, когда действие возвращает значение.

В отличие от метода handleAsync, этот метод не предназначен для преобразования результатов завершения, поэтому заданное действие не должно вызывать исключение. Однако, если это произойдет, применяются следующие правила: если этот этап завершился нормально, но заданное действие вызывает исключение, то возвращаемый этап завершается с исключением, выброшенным заданным действием. Или, если этот этап завершился с исключением, и заданное действие вызывает исключение, то возвращаемый этап завершается с исключением этого этапа.

Параметры:
action - выполняемое действие
executor - используемый для асинхронного выполнения Executor
Возвращает:
новый CompletionStage

исключительно

CompletionStage<T> exceptionally(Function<Throwable,? extends T> fn)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции. В противном случае, если этот этап завершается нормально, то возвращаемый этап также завершается нормально со значением того же самого.
Параметры:
fn - функция, используемая для вычисления значения возвращаемой CompletionStage, если этот CompletionStage завершился с исключением
Возвращает:
новая CompletionStage

исключительноАсинхронно

default CompletionStage<T> exceptionallyAsync(Function<Throwable,? extends T> fn)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции, используя стандартные асинхронные возможности этого этапа. В противном случае, если этот этап завершается нормально, то возвращаемый этап также завершается нормально с тем же значением.
Требования к реализации:
Стандартная реализация вызывает 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)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции, используя предоставленный 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)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, композируется с использованием результатов предоставленной функции, применённой к исключению этого этапа.
Требования к реализации:
Стандартная реализация вызывает 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)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, композируется с использованием результатов предоставленной функции, применённой к исключению этого этапа, используя стандартные асинхронные возможности этого этапа.
Требования к реализации:
Стандартная реализация вызывает 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)
Возвращает новую CompletionStage, которая, когда этот этап завершается с исключением, композируется с использованием результатов предоставленной функции, применённой к исключению этого этапа, используя предоставленный 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, 2021, 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/17/docs/api/java.base/java/util/concurrent/CompletionStage.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API