Spec-Zone.ru › OpenJDK 21

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

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

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

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

С:
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 - исполнитель, который нужно использовать для асинхронного выполнения
Возвращает:
новая 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, возвращаемая заданной функцией, выполненная с использованием предоставленного исполнителя.

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

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

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

Параметры типа:
U - тип результата возвращаемой CompletionStage
Параметры:
fn - функция, используемая для вычисления другой CompletionStage
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 - исполнитель, который нужно использовать для асинхронного выполнения
Возвращает:
новая 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 - исполнитель, который нужно использовать для асинхронного выполнения
Возвращает:
новая 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, 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

Spec-Zone.ru

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