Spec-Zone.ru › OpenJDK 24

Класс 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.

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

Future.State

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

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

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

Modifier and Type Method Description
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)
Если еще не завершен, вызывает исключения invocations методов get() и связанных методов с указанным исключением.
CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
Завершает этот CompletableFuture заданным значением, если он еще не завершен до истечения заданного таймаута.
CompletableFuture<T> copy()
Возвращает новый CompletableFuture, который завершается нормально тем же значением, что и этот CompletableFuture, когда он завершается нормально.
Executor defaultExecutor()
Возвращает стандартный исполнитель, используемый для асинхронных методов, которые не задают исполнителя.
static Executor delayedExecutor(long delay, TimeUnit unit)
Возвращает новый исполнитель, который отправляет задачу в стандартный исполнитель после заданной задержки (или без задержки, если она не положительна).
static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
Возвращает новый исполнитель, который отправляет задачу в заданный базовый исполнитель после заданной задержки (или без задержки, если она не положительна).
CompletableFuture<T> exceptionally(Function<Throwable, ? extends T> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента предоставленной функции.
CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента предоставленной функции, используя стандартный асинхронный механизм выполнения этого этапа.
CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, выполняется с исключением этого этапа в качестве аргумента предоставленной функции, используя предоставленного исполнителя.
CompletableFuture<T> exceptionallyCompose(Function<Throwable, ? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, составляется с результатами предоставленной функции, примененной к исключению этого этапа.
CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, составляется с результатами предоставленной функции, примененной к исключению этого этапа, используя стандартный асинхронный механизм выполнения этого этапа.
CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn, Executor executor)
Возвращает новый CompletionStage, который, когда этот этап завершается с исключением, составляется с результатами предоставленной функции, примененной к исключению этого этапа, используя предоставленного исполнителя.
Throwable exceptionNow()
Возвращает исключение, брошенное задачей, без ожидания.
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, если он не завершен до истечения заданного таймаута.
T resultNow()
Возвращает вычисленный результат, не ожидая.
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 после выполнения заданного действия.
Future.State state()
Возвращает состояние вычисления.
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

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

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 - если это будущее завершилось с исключением или вычисление завершения выбросило исключение

resultNow

public T resultNow()
Описание скопировано из интерфейса: Future
Возвращает вычисленный результат без ожидания.

Этот метод предназначен для случаев, когда вызывающий метод знает, что задача уже успешно завершилась, например, при фильтрации потока объектов Future для успешных задач и использовании операции отображения для получения потока результатов.

    results = futures.stream()
               .filter(f -> f.state() == Future.State.SUCCESS)
               .map(Future::resultNow)
               .toList();
Определено в:
resultNow в интерфейсе Future<T>
Возвращает:
вычисленный результат
С:
19

exceptionNow

public Throwable exceptionNow()
Описание скопировано из интерфейса: Future
Возвращает исключение, сгенерированное задачей, без ожидания.

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

Определено в:
exceptionNow в интерфейсе Future<T>
Возвращает:
исключение, сгенерированное задачей
С:
19

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 - executor для использования в асинхронном выполнении
Возвращает:
новый CompletionStage

thenAccept

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

thenAcceptAsync

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

thenAcceptAsync

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

thenRun

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

thenRunAsync

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

thenRunAsync

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

thenCombine

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

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

handle

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

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

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

handleAsync

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

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

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

handleAsync

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

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

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

toCompletableFuture

public CompletableFuture<T> toCompletableFuture()
Возвращает этот CompletableFuture.
Определено в:
toCompletableFuture в интерфейсе CompletionStage<T>
Возвращает:
этот CompletableFuture

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

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

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

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

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

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

исключительноКомпоновать

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

исключительноКомпоноватьАсинхронно

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

исключительноКомпоноватьАсинхронно

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

allOf

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

Одно из применений этого метода - ожидание завершения набора независимых CompletableFutures перед продолжением программы, как в: NullPointerException.

Параметры:
cfs - CompletableFutures
Возвращает:
новый CompletableFuture, который завершается, когда все заданные CompletableFutures завершаются
Исключения:
NullPointerException - если массив или любой из его элементов являются null

anyOf

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

отменить

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

отменён

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

исключительноЗавершён

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

состояние

public Future.State state()
Описание скопировано из интерфейса: Future
Возвращает состояние вычисления.
Указано в:
state в интерфейсе Future<T>
Возвращает:
состояние вычисления
С:
19

навязатьЗначение

public void obtrudeValue(T value)
Принудительно устанавливает или сбрасывает значение, которое впоследствии возвращается методом get() и связанными методами, независимо от того, завершён ли он уже. Этот метод предназначен только для использования в действиях восстановления ошибок, и даже в таких ситуациях может привести к продолжающимся зависимым завершениям с использованием установленных, а не перезаписанных результатов.
Параметры:
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:
this CompletableFuture
Since:
9

completeAsync

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

orTimeout

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

completeOnTimeout

public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
Завершает этот CompletableFuture заданным значением, если он не завершится иначе до истечения заданного таймаута.
Parameters:
value - значение для использования при таймауте
timeout - время ожидания до нормального завершения со значением, в единицах unit
unit - единица измерения TimeUnit, определяющая, как интерпретировать параметр timeout
Returns:
this 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, 2025, 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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/util/concurrent/CompletableFuture.html

Spec-Zone.ru

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