Spec-Zone.ru › OpenJDK 21

Класс CompletableFuture<T>

java.lang.Object
java.util.concurrent.CompletableFuture<T>
Type Parameters:
T - Тип результата, возвращаемый методами join и get данного объекта
Все реализованные интерфейсы:
CompletionStage<T>, Future<T>
public class CompletableFuture<T> extends Object implements Future<T>, CompletionStage<T>
Объект Future, который можно явно завершить (установив его значение и статус), и который можно использовать как CompletionStage, поддерживающий зависимые функции и действия, запускаемые при его завершении.

Когда две или более потоков пытаются complete, completeExceptionally или cancel объект CompletableFuture, только один из них выполняется успешно.

Помимо этих и связанных методов для прямого управления состоянием и результатами, CompletableFuture реализует интерфейс CompletionStage со следующими правилами:

  • Действия, предоставленные для зависимых завершений методов не-асинхронных, могут выполняться потоком, который завершает текущий объект CompletableFuture, или любым другим вызывающим методом метода завершения.
  • Все асинхронные методы без явного аргумента Executor выполняются с использованием ForkJoinPool.commonPool() (если он не поддерживает уровень параллелизма не менее двух, в этом случае для выполнения каждой задачи создается новый поток). Это можно переопределить для нестатических методов в подклассах, определив метод defaultExecutor(). Для упрощения мониторинга, отладки и отслеживания все сгенерированные асинхронные задачи являются экземплярами интерфейса-маркера CompletableFuture.AsynchronousCompletionTask. Операции с задержками во времени могут использовать адаптерные методы, определенные в этом классе, например: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)). Для поддержки методов с задержками и таймаутами этот класс поддерживает не более одного демона-потока для запуска и отмены действий, а не для их выполнения.
  • Все методы CompletionStage реализуются независимо от других публичных методов, поэтому поведение одного метода не зависит от переопределений других в подклассах.
  • Все методы CompletionStage возвращают объекты CompletableFutures. Чтобы ограничить использование только теми методами, которые определены в интерфейсе CompletionStage, используйте метод minimalCompletionStage(). Или чтобы гарантировать, что клиенты сами не изменяют объект future, используйте метод copy().

CompletableFuture также реализует Future со следующими правилами:

  • Поскольку (в отличие от FutureTask) этот класс не имеет прямого контроля над вычислением, которое приводит к его завершению, отмена обрабатывается как просто еще одна форма исключительного завершения. Метод cancel имеет тот же эффект, что и completeExceptionally(new CancellationException()). Метод isCompletedExceptionally() можно использовать для определения, завершился ли CompletableFuture каким-либо исключительным образом.
  • В случае исключительного завершения с CompletionException методы get() и get(long, TimeUnit) выбрасывают ExecutionException с той же причиной, что и в соответствующем CompletionException. Для упрощения использования в большинстве контекстов этот класс также определяет методы join() и getNow(T), которые вместо этого непосредственно выбрасывают CompletionException в этих случаях.

Аргументы, используемые для передачи результата завершения (то есть для параметров типа T) для методов, принимающих их, могут быть null, но передача null в качестве значения для любого другого параметра приведет к выбрасыванию NullPointerException.

Подклассы этого класса обычно должны переопределять метод "виртуального конструктора" newIncompleteFuture(), который устанавливает конкретный тип, возвращаемый методами CompletionStage. Например, вот класс, который подставляет другой по умолчанию Executor и отключает методы obtrude:

 
 class MyCompletableFuture<T> extends CompletableFuture<T> {
   static final Executor myExecutor = ...;
   public MyCompletableFuture() { }
   public <U> CompletableFuture<U> newIncompleteFuture() {
     return new MyCompletableFuture<U>(); }
   public Executor defaultExecutor() {
     return myExecutor; }
   public void obtrudeValue(T value) {
     throw new UnsupportedOperationException(); }
   public void obtrudeException(Throwable ex) {
     throw new UnsupportedOperationException(); }
 }
Since:
1.8

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static interface  CompletableFuture.AsynchronousCompletionTask
Маркерный интерфейс, идентифицирующий асинхронные задачи, созданные методами async.

Вложенные классы/интерфейсы, объявленные в интерфейсе java.util.concurrent.Future

Future.State

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

Конструктор Описание
CompletableFuture()
Создает новый незавершенный CompletableFuture.

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

Модификатор и тип Метод Описание
CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленного действия.
CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленного действия.
CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленного действия.
static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда все заданные CompletableFutures завершаются.
static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда любой из заданных CompletableFutures завершается, с тем же результатом.
<U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T,U> fn)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с соответствующим результатом в качестве аргумента для предоставленной функции.
<U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с соответствующим результатом в качестве аргумента для предоставленной функции.
<U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T,U> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершаются нормально, выполняется с использованием предоставленного исполнителя, с соответствующим результатом в качестве аргумента для предоставленной функции.
boolean cancel(boolean mayInterruptIfRunning)
Если еще не завершён, завершает этот CompletableFuture с CancellationException.
boolean complete(T value)
Если еще не завершён, устанавливает значение, возвращаемое методом get() и связанными методами, до заданного значения.
CompletableFuture<T> completeAsync(Supplier<? extends T> supplier)
Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием стандартного исполнителя.
CompletableFuture<T> completeAsync(Supplier<? extends T> supplier, Executor executor)
Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием заданного исполнителя.
static <U> CompletableFuture<U> completedFuture(U value)
Возвращает новый CompletableFuture, который уже завершен заданным значением.
static <U> CompletionStage<U> completedStage(U value)
Возвращает новый CompletionStage, который уже завершен заданным значением и поддерживает только те методы из интерфейса CompletionStage.
boolean completeExceptionally(Throwable ex)
Если еще не завершён, вызывает исключение, которое будет выброшено при последующих вызовах get() и связанных методов.
CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
Завершает этот CompletableFuture заданным значением, если он не завершён до заданного таймаута.
CompletableFuture<T> copy()
Возвращает новый CompletableFuture, который завершается нормально с тем же значением, что и этот CompletableFuture, при его нормальном завершении.
Executor defaultExecutor()
Возвращает стандартный Executor, используемый для асинхронных методов, не указывающих Executor.
static Executor delayedExecutor(long delay, TimeUnit unit)
Возвращает новый Executor, который отправляет задачу в стандартный Executor после заданной задержки (или без задержки, если значение не положительно).
static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
Возвращает новый Executor, который отправляет задачу в заданный базовый Executor после заданной задержки (или без задержки, если значение не положительно).
CompletableFuture<T> exceptionally(Function<Throwable,? extends T> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается с ошибкой, выполняется с исключением этого этапа в качестве аргумента для предоставленной функции.
static <U> CompletableFuture<U> failedFuture(Throwable ex)
Возвращает новый CompletableFuture, который уже завершен с исключением.
static <U> CompletionStage<U> failedStage(Throwable ex)
Возвращает новый CompletionStage, который уже завершен с исключением и поддерживает только те методы из интерфейса CompletionStage.
T get()
Ожидает завершения этого будущего и возвращает его результат.
T get(long timeout, TimeUnit unit)
Ожидает завершения этого будущего не более заданного времени и возвращает его результат, если он доступен.
T getNow(T valueIfAbsent)
Возвращает значение результата (или выбросит любое возникшее исключение), если завершён, в противном случае возвращает заданное значениеIfAbsent.
int getNumberOfDependents()
Возвращает приблизительное количество CompletableFutures, чьё завершение ожидает завершения этого CompletableFuture.
<U> CompletableFuture<U> handle(BiFunction<? super T,Throwable,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с результатом и исключением этого этапа в качестве аргументов для предоставленной функции.
<U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с результатом и исключением этого этапа в качестве аргументов для предоставленной функции.
<U> CompletableFuture<U> handleAsync(BiFunction<? super T,Throwable,? extends U> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершается нормально или с исключением, выполняется с использованием предоставленного исполнителя, с результатом и исключением этого этапа в качестве аргументов для предоставленной функции.
boolean isCancelled()
Возвращает true если этот CompletableFuture был отменён до его нормального завершения.
boolean isCompletedExceptionally()
Возвращает true если этот CompletableFuture завершился с исключением каким-либо способом.
boolean isDone()
Возвращает true если завершён каким-либо способом: нормально, с исключением или с помощью отмены.
T join()
Возвращает значение результата при завершении, или выбрасывает (непроверенное) исключение, если завершился с исключением.
CompletionStage<T> minimalCompletionStage()
Возвращает новый CompletionStage, который завершается нормально тем же значением, что и этот CompletableFuture, при его нормальном завершении, и не может быть независимо завершен или использован другими способами, не определенными методами интерфейса CompletionStage.
<U> CompletableFuture<U> newIncompleteFuture()
Возвращает новый незавершенный CompletableFuture типа, который будет возвращен методом CompletionStage.
void obtrudeException(Throwable ex)
Принудительно вызывает последующие вызовы метода get() и связанных методов, чтобы выбросить заданное исключение, независимо от того, завершился ли он или нет.
void obtrudeValue(T value)
Принудительно устанавливает или сбрасывает значение, возвращаемое позже методом get() и связанными методами, независимо от того, завершился ли он или нет.
CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
Исключительно завершает этот CompletableFuture с TimeoutException, если он не завершился до заданного таймаута.
CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершаются нормально, выполняет заданное действие.
CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершаются нормально, выполняет заданное действие, используя стандартный асинхронный механизм выполнения этого этапа.
CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап завершаются нормально, выполняет заданное действие, используя предоставленный Executor.
CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет заданное действие.
CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет заданное действие, используя стандартную асинхронную среду выполнения этого этапа.
CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот или другой заданный этап завершатся нормально, выполняет заданное действие, используя предоставленный Executor.
static CompletableFuture<Void> runAsync(Runnable runnable)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool(), после выполнения заданного действия.
static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном Executor после выполнения заданного действия.
static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool() со значением, полученным путем вызова заданного Supplier.
static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняемой в заданном Executor со значением, полученным путем вызова заданного Supplier.
CompletableFuture<Void> thenAccept(Consumer<? super T> action)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с результатом этого этапа в качестве аргумента для предоставленного действия.
CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с помощью стандартной асинхронной среды выполнения этого этапа, с результатом этого этапа в качестве аргумента для предоставленного действия.
CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием предоставленного Executor, с результатом этого этапа в качестве аргумента для предоставленного действия.
<U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленного действия.
<U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с помощью стандартной асинхронной среды выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленного действия.
<U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action, Executor executor)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с использованием предоставленного executor, с двумя результатами в качестве аргументов для предоставленного действия.
<U> CompletableFuture<U> thenApply(Function<? super T,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с результатом этого этапа в качестве аргумента для предоставленной функции.
<U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с помощью стандартной асинхронной среды выполнения этого этапа, с результатом этого этапа в качестве аргумента для предоставленной функции.
<U> CompletableFuture<U> thenApplyAsync(Function<? super T,? extends U> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполняется с использованием предоставленного Executor, с результатом этого этапа в качестве аргумента для предоставленной функции.
<U, V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с двумя результатами в качестве аргументов для предоставленной функции.
<U, V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с помощью стандартной асинхронной среды выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленной функции.
<U, V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот и другой заданный этап оба завершатся нормально, выполняется с использованием предоставленного executor, с двумя результатами в качестве аргументов для предоставленной функции.
<U> CompletableFuture<U> thenCompose(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый CompletionStage, завершаемый тем же значением, что и CompletionStage, возвращаемый предоставленной функцией.
<U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn)
Возвращает новый CompletionStage, завершаемый тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемый в стандартной асинхронной среде выполнения этого этапа.
<U> CompletableFuture<U> thenComposeAsync(Function<? super T,? extends CompletionStage<U>> fn, Executor executor)
Возвращает новый CompletionStage, завершаемый тем же значением, что и CompletionStage, возвращаемый предоставленной функцией, выполняемый с использованием предоставленного Executor.
CompletableFuture<Void> thenRun(Runnable action)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполнит заданное действие.
CompletableFuture<Void> thenRunAsync(Runnable action)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполнит заданное действие с помощью стандартной асинхронной среды выполнения этого этапа.
CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершится нормально, выполнит заданное действие с использованием предоставленного Executor.
CompletableFuture<T> toCompletableFuture()
Возвращает этот CompletableFuture.
String toString()
Возвращает строку, идентифицирующую этот CompletableFuture, а также его состояние завершения.
CompletableFuture<T> whenComplete(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполнит заданное действие, когда этот этап завершится.
CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполнит заданное действие с помощью стандартной асинхронной среды выполнения этого этапа, когда этот этап завершится.
CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T,? super Throwable> action, Executor executor)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этот этап, который выполнит заданное действие с помощью предоставленного Executor, когда этот этап завершится.

Методы, объявленные в классе java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait

Методы, объявленные в интерфейсе java.util.concurrent.CompletionStage

exceptionallyAsync, exceptionallyAsync, exceptionallyCompose, exceptionallyComposeAsync, exceptionallyComposeAsync

Методы, объявленные в интерфейсе java.util.concurrent.Future

exceptionNow, resultNow, state

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

CompletableFuture

public CompletableFuture()
Создаёт новую неполную CompletableFuture.

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

supplyAsync

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
Возвращает новую CompletableFuture, которая асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool(), со значением, полученным путём вызова заданного Supplier.
Параметры типа:
U - тип возвращаемого значения функции
Параметры:
supplier - функция, возвращающая значение, используемое для завершения возвращаемой CompletableFuture
Возвращает:
новую CompletableFuture

supplyAsync

public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
Возвращает новую CompletableFuture, которая асинхронно завершается задачей, выполняемой в заданном исполнителе, со значением, полученным путём вызова заданного Supplier.
Параметры типа:
U - тип возвращаемого значения функции
Параметры:
supplier - функция, возвращающая значение, используемое для завершения возвращаемой CompletableFuture
executor - исполнитель для асинхронного выполнения
Возвращает:
новую CompletableFuture

runAsync

public static CompletableFuture<Void> runAsync(Runnable runnable)
Возвращает новую CompletableFuture, которая асинхронно завершается задачей, выполняемой в ForkJoinPool.commonPool() после выполнения заданного действия.
Параметры:
runnable - действие, которое нужно выполнить перед завершением возвращаемой CompletableFuture
Возвращает:
новую CompletableFuture

runAsync

public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
Возвращает новую CompletableFuture, которая асинхронно завершается задачей, выполняемой в заданном исполнителе после выполнения заданного действия.
Параметры:
runnable - действие, которое нужно выполнить перед завершением возвращаемой CompletableFuture
executor - исполнитель для асинхронного выполнения
Возвращает:
новую CompletableFuture

completedFuture

public static <U> CompletableFuture<U> completedFuture(U value)
Возвращает новую CompletableFuture, которая уже завершена заданным значением.
Параметры типа:
U - тип значения
Параметры:
value - значение
Возвращает:
завершенную CompletableFuture

isDone

public boolean isDone()
Возвращает true , если завершена каким-либо способом: обычно, с исключением или через отмену.
Определено в:
isDone в интерфейсе Future<T>
Возвращает:
true , если завершена

get

public T get() throws InterruptedException, ExecutionException
Если необходимо, ожидает завершения этой задачи и возвращает её результат.
Определено в:
get в интерфейсе Future<T>
Возвращает:
значение результата
Исключения:
CancellationException - если эта задача была отменена
ExecutionException - если эта задача завершилась с исключением
InterruptedException - если текущий поток был прерван во время ожидания

get

public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
Ожидает, если необходимо, не более заданного времени завершения этой задачи и возвращает её результат, если он доступен.
Определено в:
get в интерфейсе Future<T>
Параметры:
timeout - максимальное время ожидания
unit - единица измерения времени аргумента тайм-аута
Возвращает:
значение результата
Исключения:
CancellationException - если эта задача была отменена
ExecutionException - если эта задача завершилась с исключением
InterruptedException - если текущий поток был прерван во время ожидания
TimeoutException - если ожидание истекло

join

public T join()
Возвращает значение результата при завершении или выбрасывает (непроверенное) исключение, если завершение произошло с исключением. Для лучшего соответствия использованию общих функциональных форм, если вычисление, участвующее в завершении этой CompletableFuture, вызвало исключение, этот метод выбрасывает (непроверенное) CompletionException с базовым исключением в качестве причины.
Возвращает:
значение результата
Исключения:
CancellationException - если вычисление было отменено
CompletionException - если эта задача завершилась с исключением или вычисление завершения вызвало исключение

getNow

public T getNow(T valueIfAbsent)
Возвращает значение результата (или выбрасывает любое возникшее исключение), если завершено, в противном случае возвращает заданное valueIfAbsent.
Параметры:
valueIfAbsent - значение, возвращаемое, если не завершено
Возвращает:
значение результата, если завершено, в противном случае заданное valueIfAbsent
Исключения:
CancellationException - если вычисление было отменено
CompletionException - если эта задача завершилась с исключением или вычисление завершения вызвало исключение

complete

public boolean complete(T value)
Если ещё не завершено, устанавливает значение, возвращаемое get() и связанными методами, до заданного значения.
Параметры:
value - значение результата
Возвращает:
true , если это вызов привело к переходу этой CompletableFuture в состояние завершения, в противном случае false

completeExceptionally

public boolean completeExceptionally(Throwable ex)
Если ещё не завершено, вызывает вызовы get() и связанных методов для выброса заданного исключения.
Параметры:
ex - исключение
Возвращает:
true , если этот вызов перевел эту CompletableFuture в завершенное состояние, иначе false

thenApply

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

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

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

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

thenApplyAsync

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

thenApplyAsync

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

thenAccept

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

thenAcceptAsync

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

thenAcceptAsync

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

thenRun

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

thenRunAsync

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

thenRunAsync

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

thenCombine

public <U, V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот и другой предоставленный этап оба завершаются нормально, выполняется с двумя результатами в качестве аргументов для предоставленной функции. См. документацию по CompletionStage для правил, охватывающих исключительное завершение.
Указано в:
thenCombine в интерфейсе CompletionStage<T>
Параметры типа:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Параметры:
other - другой CompletionStage
fn - функция, которая будет использоваться для вычисления значения возвращаемого CompletionStage
Возвращает:
новый CompletionStage

thenCombineAsync

public <U, V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот и другой предоставленный этап оба завершаются нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленной функции. См. документацию по CompletionStage для правил, охватывающих исключительное завершение.
Указано в:
thenCombineAsync в интерфейсе CompletionStage<T>
Параметры типа:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Параметры:
other - другой CompletionStage
fn - функция, которая будет использоваться для вычисления значения возвращаемого CompletionStage
Возвращает:
новый CompletionStage

thenCombineAsync

public <U, V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T,? super U,? extends V> fn, Executor executor)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот и другой предоставленный этап оба завершаются нормально, выполняется с использованием предоставленного executor, с двумя результатами в качестве аргументов для предоставленной функции. См. документацию по CompletionStage для правил, охватывающих исключительное завершение.
Указано в:
thenCombineAsync в интерфейсе CompletionStage<T>
Параметры типа:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Параметры:
other - другой CompletionStage
fn - функция, которая будет использоваться для вычисления значения возвращаемого CompletionStage
executor - исполняющий механизм, который необходимо использовать для асинхронного выполнения
Возвращает:
новый CompletionStage

thenAcceptBoth

public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот и другой предоставленный этап оба завершаются нормально, выполняется с двумя результатами в качестве аргументов для предоставленного действия. См. документацию по CompletionStage для правил, охватывающих исключительное завершение.
Указано в:
thenAcceptBoth в интерфейсе CompletionStage<T>
Параметры типа:
U - тип результата другого CompletionStage
Параметры:
other - другой CompletionStage
action - действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage
Возвращает:
новый CompletionStage

thenAcceptBothAsync

public <U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T,? super U> action)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот и другой предоставленный этап оба завершаются нормально, выполняется с использованием стандартного асинхронного механизма выполнения этого этапа, с двумя результатами в качестве аргументов для предоставленного действия. См. документацию по CompletionStage для правил, охватывающих исключительное завершение.
Указано в:
thenAcceptBothAsync в интерфейсе CompletionStage<T>
Параметры типа:
U - тип результата другого CompletionStage
Параметры:
other - другой CompletionStage
action - действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage
Возвращает:
новый CompletionStage

thenAcceptBothAsync

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

runAfterBoth

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

runAfterBothAsync

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

runAfterBothAsync

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

applyToEither

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

applyToEitherAsync

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

applyToEitherAsync

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

acceptEither

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

acceptEitherAsync

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

acceptEitherAsync

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

runAfterEither

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

runAfterEitherAsync

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

runAfterEitherAsync

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

thenCompose

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

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

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

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

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

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

thenComposeAsync

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

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

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

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

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

thenComposeAsync

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

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

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

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

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

whenComplete

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

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

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

Определено в:
whenComplete в интерфейсе CompletionStage<T>
Параметры:
action - действие, которое нужно выполнить
Возвращает:
новый CompletionStage

whenCompleteAsync

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

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

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

Определено в:
whenCompleteAsync в интерфейсе CompletionStage<T>
Параметры:
action - действие, которое нужно выполнить
Возвращает:
новый CompletionStage

whenCompleteAsync

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

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

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

Specified by:
whenCompleteAsync в интерфейсе CompletionStage<T>
Parameters:
action - действие для выполнения
executor - executor для использования в асинхронном выполнении
Returns:
новая CompletionStage

handle

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

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

Specified by:
handle в интерфейсе CompletionStage<T>
Type Parameters:
U - тип возвращаемого значения функции
Parameters:
fn - функция для вычисления значения возвращаемой CompletionStage
Returns:
новая CompletionStage

handleAsync

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

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

Specified by:
handleAsync в интерфейсе CompletionStage<T>
Type Parameters:
U - тип возвращаемого значения функции
Parameters:
fn - функция для вычисления значения возвращаемой CompletionStage
Returns:
новая CompletionStage

handleAsync

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

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

Specified by:
handleAsync в интерфейсе CompletionStage<T>
Type Parameters:
U - тип возвращаемого значения функции
Parameters:
fn - функция для вычисления значения возвращаемой CompletionStage
executor - executor для использования в асинхронном выполнении
Returns:
новая CompletionStage

toCompletableFuture

public CompletableFuture<T> toCompletableFuture()
Возвращает этот CompletableFuture.
Specified by:
toCompletableFuture в интерфейсе CompletionStage<T>
Returns:
этот CompletableFuture

exceptionally

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

allOf

public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда все заданные CompletableFuture завершатся. Если какой-либо из заданных CompletableFuture завершается с исключением, то возвращаемый CompletableFuture также завершается так же, с CompletionException, содержащей это исключение в качестве причины. В противном случае, результаты заданных CompletableFuture не отражаются в возвращаемом CompletableFuture, но могут быть получены, просмотрев их индивидуально. Если заданных CompletableFuture нет, возвращает CompletableFuture, завершенный со значением null.

Среди применений этого метода - ожидание завершения набора независимых CompletableFuture перед продолжением программы, как в: CompletableFuture.allOf(c1, c2, c3).join();.

Parameters:
cfs - CompletableFuture
Returns:
новый CompletableFuture, который завершается, когда все заданные CompletableFuture завершатся
Throws:
NullPointerException - если массив или любой его элемент является null

anyOf

public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда любой из заданных CompletableFuture завершается, с тем же результатом. В противном случае, если завершение произошло с исключением, возвращаемый CompletableFuture также завершается с исключением, с CompletionException, содержащим это исключение в качестве причины. Если заданных CompletableFuture нет, возвращает незавершенный CompletableFuture.
Parameters:
cfs - CompletableFuture
Returns:
новый CompletableFuture, который завершается с результатом или исключением любого из заданных CompletableFuture, когда один завершается
Throws:
NullPointerException - если массив или любой его элемент является null

cancel

public boolean cancel(boolean mayInterruptIfRunning)
Если еще не завершен, завершает этот CompletableFuture с CancellationException. Зависимые CompletableFuture, которые еще не завершились, также завершатся с исключением, с CompletionException вызванным этим CancellationException.
Specified by:
cancel в интерфейсе Future<T>
Parameters:
mayInterruptIfRunning - это значение не имеет эффекта в этой реализации, так как прерывания не используются для управления обработкой.
Returns:
true если эта задача сейчас отменена

isCancelled

public boolean isCancelled()
Возвращает true если этот CompletableFuture был отменен до завершения нормально.
Specified by:
isCancelled в интерфейсе Future<T>
Returns:
true если этот CompletableFuture был отменен до его нормального завершения

isCompletedExceptionally

public boolean isCompletedExceptionally()
Возвращает true если этот CompletableFuture завершился с исключением, каким-либо образом. Возможные причины включают отмену, явное вызов completeExceptionally, и внезапное завершение действия CompletionStage.
Returns:
true если этот CompletableFuture завершился с исключением

obtrudeValue

public void obtrudeValue(T value)
Принудительно устанавливает или сбрасывает значение, возвращаемое методом get() и связанными методами, независимо от того, завершен ли он уже. Этот метод предназначен для использования только в действиях по восстановлению от ошибок, и даже в таких ситуациях может привести к продолжению зависимых завершений, использующих установленные по сравнению с перезаписанными результатами.
Parameters:
value - значение завершения

ВызватьИсключение

public void obtrudeException(Throwable ex)
Принудительно вызывает последующие вызовы метода get() и связанных методов с выбрасыванием данного исключения, вне зависимости от того, завершился ли он уже или нет. Данный метод предназначен только для действий по восстановлению от ошибок, и даже в таких ситуациях может привести к продолжающимся зависимым завершениям с использованием установленных, а не перезаписанных результатов.
Параметры:
ex - исключение
Исключения:
NullPointerException - если исключение равно null

ПолучитьКоличествоЗависимых

public int getNumberOfDependents()
Возвращает приблизительное количество CompletableFutures, чьё завершение ожидает завершение данного CompletableFuture. Данный метод предназначен для мониторинга состояния системы, а не для управления синхронизацией.
Возвращает:
количество зависимых CompletableFutures

toString

public String toString()
Возвращает строку, идентифицирующую данный CompletableFuture, а также его состояние завершения. Состояние, в скобках, содержит строку "Completed Normally" или строку "Completed Exceptionally", или строку "Not completed", за которой следует количество CompletableFutures, зависящих от его завершения, если таковые имеются.
Переопределяет:
toString в классе Object
Возвращает:
строку, идентифицирующую данный CompletableFuture и его состояние

newIncompleteFuture

public <U> CompletableFuture<U> newIncompleteFuture()
Возвращает новый незавершенный CompletableFuture типа, который должен возвращаться методом CompletionStage. Подклассы обычно должны переопределять этот метод, чтобы возвращать экземпляр того же класса, что и данный CompletableFuture. По умолчанию возвращается экземпляр класса CompletableFuture.
Параметры типа:
U - тип значения
Возвращает:
новый CompletableFuture
С:
9

defaultExecutor

public Executor defaultExecutor()
Возвращает по умолчанию Executor, используемый для асинхронных методов, которые не задают Executor. Этот класс использует ForkJoinPool.commonPool(), если он поддерживает более одной параллельной нити, в противном случае Executor, использующий одну нить на асинхронную задачу. Данный метод может быть переопределён в подклассах для возврата Executor, обеспечивающего по крайней мере одну независимую нить.
Возвращает:
executor
С:
9

копия

public CompletableFuture<T> copy()
Возвращает новый CompletableFuture, который завершается нормально со значением, таким же, как у этого CompletableFuture, при его нормальном завершении. Если этот CompletableFuture завершается с исключением, то возвращаемый CompletableFuture завершается с исключением CompletionException с этим исключением как причиной. Поведение эквивалентно thenApply(x -> x). Этот метод может быть полезен в качестве «защитной копии», чтобы предотвратить завершение клиентами, при этом всё ещё имея возможность организовать зависимые действия.
Возвращает:
новый CompletableFuture
С:
9

минимальнаяCompletionStage

public CompletionStage<T> minimalCompletionStage()
Возвращает новый CompletionStage, который завершается нормально со значением, таким же, как у этого CompletableFuture, при его нормальном завершении, и не может быть независимо завершён или иным образом использован способами, не определёнными методами интерфейса CompletionStage. Если этот CompletableFuture завершается с исключением, то возвращаемый CompletionStage завершается с исключением CompletionException с этим исключением как причиной.

Если не переопределено в подклассе, новый не минимальный CompletableFuture со всеми доступными методами может быть получен из минимальной CompletionStage через toCompletableFuture(). Например, завершение минимального этапа может быть ожидаемо

 minimalStage.toCompletableFuture().join(); 
Возвращает:
новый CompletionStage
С:
9

завершитьАсинхронно

public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier, Executor executor)
Завершает данный CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием указанного исполнителя.
Параметры:
supplier - функция, возвращающая значение, используемое для завершения данного CompletableFuture
executor - executor для использования в асинхронном выполнении
Возвращает:
данный CompletableFuture
С:
9

завершитьАсинхронно

public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier)
Завершает данный CompletableFuture результатом заданной функции Supplier, вызванной из асинхронной задачи с использованием исполнителя по умолчанию.
Параметры:
supplier - функция, возвращающая значение, используемое для завершения данного CompletableFuture
Возвращает:
данный CompletableFuture
С:
9

илиТаймаут

public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
Исключительно завершает данный CompletableFuture с TimeoutException, если он не завершается иначе до указанного таймаута.
Параметры:
timeout - время ожидания до исключительного завершения TimeoutException, в единицах unit
unit - единица измерения, определяющая, как интерпретировать параметр timeout
Возвращает:
данный CompletableFuture
С:
9

завершитьПриТаймауте

public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
Завершает данный CompletableFuture заданным значением, если он не завершается иначе до заданного таймаута.
Параметры:
value - значение, используемое при таймауте
timeout - время ожидания до нормального завершения со значением, в единицах unit
unit - единица измерения, определяющая, как интерпретировать параметр timeout
Возвращает:
данный CompletableFuture
С:
9

задержанныйИсполнитель

public static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
Возвращает новый Executor, который отправляет задачу в указанный базовый executor после заданной задержки (или без задержки, если она не положительная). Каждая задержка начинается при вызове метода execute возвращённого executor.
Параметры:
delay - время задержки, в единицах unit
unit - единица измерения, определяющая, как интерпретировать параметр delay
executor - базовый executor
Возвращает:
новый задержанный executor
С:
9

задержанныйИсполнитель

public static Executor delayedExecutor(long delay, TimeUnit unit)
Возвращает новый Executor, который отправляет задачу в executor по умолчанию после заданной задержки (или без задержки, если она не положительная). Каждая задержка начинается при вызове метода execute возвращённого executor.
Параметры:
delay - время задержки, в единицах unit
unit - единица измерения, определяющая, как интерпретировать параметр delay
Возвращает:
новый задержанный executor
С:
9

завершённыйStage

public static <U> CompletionStage<U> completedStage(U value)
Возвращает новый CompletionStage, который уже завершен заданным значением и поддерживает только те методы в интерфейсе CompletionStage.
Параметры типа:
U - тип значения
Параметры:
value - значение
Возвращает:
завершённый CompletionStage
С:
9

неудавшийсяFuture

public static <U> CompletableFuture<U> failedFuture(Throwable ex)
Возвращает новый CompletableFuture, который уже завершен с исключением.
Параметры типа:
U - тип значения
Параметры:
ex - исключение
Возвращает:
исключительно завершённый CompletableFuture
С:
9

неудавшийсяStage

public static <U> CompletionStage<U> failedStage(Throwable ex)
Возвращает новый CompletionStage, который уже завершен с исключением, и поддерживает только те методы в интерфейсе CompletionStage.
Параметры типа:
U - тип значения
Параметры:
ex - исключение
Возвращает:
исключительно завершённый CompletionStage
С:
9

© 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/CompletableFuture.html

Spec-Zone.ru

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