Spec-Zone.ru › OpenJDK 17

Класс CompletableFuture<T>

java.lang.Object
java.util.concurrent.CompletableFuture<T>
Параметры типа:
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(). Или чтобы гарантировать, что клиенты не изменяют будущее самостоятельно, используйте метод 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(); }
 }
С:
1.8

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

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

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

Конструктор Описание
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)
Возвращает значение результата (или выбрасывает любое возникшее исключение), если завершено, иначе возвращает значение valueIfAbsent.
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, который, когда этот и другой заданные этапы оба завершатся нормально, выполнит предоставленное действие с использованием предоставленного исполнителя.
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

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

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, которая, когда эта стадия завершается нормально, выполняется с помощью предоставленного исполнителя, с результатом этой стадии в качестве аргумента для предоставленной функции. См. документацию по 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 для правил, охватывающих исключительное завершение.
Specified by:
thenAccept in interface CompletionStage<T>
Parameters:
action - действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage
Returns:
новый CompletionStage

thenAcceptAsync

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

thenAcceptAsync

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

thenRun

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

thenRunAsync

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

thenRunAsync

public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
Description copied from interface: CompletionStage
Возвращает новый CompletionStage, который, когда этот этап завершается нормально, выполняет предоставленное действие, используя предоставленный Executor. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Specified by:
thenRunAsync in interface CompletionStage<T>
Parameters:
action - действие, которое необходимо выполнить перед завершением возвращаемого CompletionStage
executor - исполняющий механизм, который необходимо использовать для асинхронного выполнения
Returns:
новый 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 для правил, охватывающих исключительное завершение.
Specified by:
thenCombine in interface CompletionStage<T>
Type Parameters:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Parameters:
other - другой CompletionStage
fn - функция, которая используется для вычисления значения возвращаемого CompletionStage
Returns:
новый 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 для правил, охватывающих исключительное завершение.
Specified by:
thenCombineAsync in interface CompletionStage<T>
Type Parameters:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Parameters:
other - другой CompletionStage
fn - функция, которая используется для вычисления значения возвращаемого CompletionStage
Returns:
новый 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, который, когда этот и другой предоставленный этап завершаются нормально, выполняется с использованием предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленной функции. См. документацию CompletionStage для правил, охватывающих исключительное завершение.
Specified by:
thenCombineAsync in interface CompletionStage<T>
Type Parameters:
U - тип результата другого CompletionStage
V - тип возвращаемого значения функции
Parameters:
other - другой CompletionStage
fn - функция, которая используется для вычисления значения возвращаемого CompletionStage
executor - исполняющий механизм, который необходимо использовать для асинхронного выполнения
Returns:
новый CompletionStage

thenAcceptBoth

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

thenAcceptBothAsync

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

allOf

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

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

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

anyOf

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

cancel

public boolean cancel(boolean mayInterruptIfRunning)
Если этот CompletableFuture еще не завершен, завершает его с CancellationException. Зависимые CompletableFutures, которые еще не завершены, также завершатся с исключением, с 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 - значение завершения

obtrudeException

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

getNumberOfDependents

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

toString

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

newIncompleteFuture

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

defaultExecutor

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

copy

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

minimalCompletionStage

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

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

 minimalStage.toCompletableFuture().join(); 
Returns:
новый CompletionStage
Since:
9

completeAsync

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

completeAsync

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

orTimeout

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

completeOnTimeout

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

delayedExecutor

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

delayedExecutor

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

completedStage

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

failedFuture

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

failedStage

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

© 1993, 2021, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/util/concurrent/CompletableFuture.html

Spec-Zone.ru

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