Spec-Zone.ru › OpenJDK 27

Класс CompletableFuture<T>

java.lang.Object
java.util.concurrent.CompletableFuture<T>
Параметры типа:
T — тип результата, возвращаемого методами join и get этой future
Все реализуемые интерфейсы:
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(). Экземпляр Executor для асинхронного выполнения по умолчанию можно переопределить для нестатических методов в подклассах, определив метод defaultExecutor(). Для упрощения мониторинга, отладки и отслеживания все создаваемые асинхронные задачи являются экземплярами маркерного интерфейса CompletableFuture.AsynchronousCompletionTask. Для операций с задержкой можно использовать методы-адаптеры, определённые в этом классе, например: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)).
  • Все методы CompletionStage реализованы независимо от других открытых методов, поэтому переопределение других методов в подклассах не влияет на поведение отдельного метода.
  • Все методы CompletionStage возвращают CompletableFuture. Чтобы ограничить использование только методами, определёнными в интерфейсе CompletionStage, используйте метод minimalCompletionStage(). Чтобы лишь гарантировать, что клиенты не смогут самостоятельно изменить future, используйте метод copy().

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

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

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

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

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

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

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

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

Future.State
Модификатор и тип Интерфейс Описание
static enum  Future.State
Представляет состояние вычисления.

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

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

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

Модификатор и тип Метод Описание
CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с соответствующим результатом в качестве аргумента переданного действия.
CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и соответствующим результатом в качестве аргумента переданного действия.
CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием переданного исполнителя и соответствующим результатом в качестве аргумента переданного действия.
static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда завершаются все заданные CompletableFuture.
static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
Возвращает новый CompletableFuture, который завершается, когда завершается любой из заданных CompletableFuture, с тем же результатом.
<U> CompletableFuture<U> applyToEither(CompletionStage<? extends T> other, Function<? super T, U> fn)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с соответствующим результатом в качестве аргумента переданной функции.
<U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и соответствующим результатом в качестве аргумента переданной функции.
<U> CompletableFuture<U> applyToEitherAsync(CompletionStage<? extends T> other, Function<? super T, U> fn, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием переданного исполнителя и соответствующим результатом в качестве аргумента переданной функции.
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, который отправляет задачу исполнителю по умолчанию после заданной задержки (или без задержки, если она неположительная).
static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
Возвращает новый Executor, который отправляет задачу заданному базовому исполнителю после заданной задержки (или без задержки, если она неположительная).
CompletableFuture<T> exceptionally(Function<Throwable, ? extends T> fn)
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции.
CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn)
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции, используя стандартное средство асинхронного выполнения этапа this.
CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn, Executor executor)
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции, используя переданный Executor.
CompletableFuture<T> exceptionallyCompose(Function<Throwable, ? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this.
CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn)
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this и стандартного средства асинхронного выполнения этапа this.
CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn, Executor executor)
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this и переданного Executor.
Throwable exceptionNow()
Возвращает исключение, выброшенное задачей, не дожидаясь ее завершения.
static <U> CompletableFuture<U> failedFuture(Throwable ex)
Возвращает новый CompletableFuture, уже завершенный исключением с заданным исключением.
static <U> CompletionStage<U> failedStage(Throwable ex)
Возвращает новый CompletionStage, уже завершенный исключением с заданным исключением и поддерживающий только те методы интерфейса CompletionStage.
T get()
При необходимости ожидает завершения этого future, а затем возвращает его результат.
T get(long timeout, TimeUnit unit)
При необходимости ожидает завершения этого future не более заданного времени, а затем возвращает его результат, если он доступен.
T getNow(T valueIfAbsent)
Возвращает значение результата (или выбрасывает возникшее исключение), если выполнение завершено; в противном случае возвращает заданное значение valueIfAbsent.
int getNumberOfDependents()
Возвращает оценочное количество CompletableFuture, завершение которых ожидает завершения этого CompletableFuture.
<U> CompletableFuture<U> handle(BiFunction<? super T, Throwable, ? extends U> fn)
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с результатом и исключением этапа this в качестве аргументов переданной функции.
<U> CompletableFuture<U> handleAsync(BiFunction<? super T, Throwable, ? extends U> fn)
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата с исключением этапа this в качестве аргументов переданной функции.
<U> CompletableFuture<U> handleAsync(BiFunction<? super T, Throwable, ? extends U> fn, Executor executor)
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с использованием переданного исполнителя и результата с исключением этапа this в качестве аргументов переданной функции.
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, который выполняет заданное действие, когда this и другой заданный этап оба завершаются нормально.
CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this, когда this и другой заданный этап оба завершаются нормально.
CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который выполняет заданное действие с использованием переданного исполнителя, когда this и другой заданный этап оба завершаются нормально.
CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который выполняет заданное действие, когда нормально завершается либо this, либо другой заданный этап.
CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
Возвращает новый CompletionStage, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this, когда нормально завершается либо this, либо другой заданный этап.
CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
Возвращает новый CompletionStage, который выполняет заданное действие с использованием переданного исполнителя, когда нормально завершается либо this, либо другой заданный этап.
static CompletableFuture<Void> runAsync(Runnable runnable)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в ForkJoinPool.commonPool() после выполнения заданного действия.
static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в заданном исполнителе после выполнения заданного действия.
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, который асинхронно завершается задачей, выполняющейся в заданном исполнителе со значением, полученным при вызове заданного Supplier.
CompletableFuture<Void> thenAccept(Consumer<? super T> action)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с результатом этапа this в качестве аргумента переданного действия.
CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата этапа this в качестве аргумента переданного действия.
CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием переданного Executor и результата этапа this в качестве аргумента переданного действия.
<U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с двумя результатами в качестве аргументов переданного действия.
<U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и двух результатов в качестве аргументов переданного действия.
<U> CompletableFuture<Void> thenAcceptBothAsync(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием переданного исполнителя и двух результатов в качестве аргументов переданного действия.
<U> CompletableFuture<U> thenApply(Function<? super T, ? extends U> fn)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с результатом этапа this в качестве аргумента переданной функции.
<U> CompletableFuture<U> thenApplyAsync(Function<? super T, ? extends U> fn)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата этапа this в качестве аргумента переданной функции.
<U> CompletableFuture<U> thenApplyAsync(Function<? super T, ? extends U> fn, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием переданного Executor и результата этапа this в качестве аргумента переданной функции.
<U,V> CompletableFuture<V> thenCombine(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с двумя результатами в качестве аргументов переданной функции.
<U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и двух результатов в качестве аргументов переданной функции.
<U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием переданного исполнителя и двух результатов в качестве аргументов переданной функции.
<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, возвращенный заданной функцией, выполняемой с использованием стандартного средства асинхронного выполнения этапа this.
<U> CompletableFuture<U> thenComposeAsync(Function<? super T, ? extends CompletionStage<U>> fn, Executor executor)
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращенный заданной функцией, выполняемой с использованием переданного Executor.
CompletableFuture<Void> thenRun(Runnable action)
Возвращает новый CompletionStage, который выполняет заданное действие при нормальном завершении этапа this.
CompletableFuture<Void> thenRunAsync(Runnable action)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this.
CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняет заданное действие с использованием переданного Executor.
CompletableFuture<T> toCompletableFuture()
Возвращает этот CompletableFuture.
String toString()
Возвращает строку, описывающую этот CompletableFuture и его состояние завершения.
CompletableFuture<T> whenComplete(BiConsumer<? super T, ? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие при завершении этапа this.
CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T, ? super Throwable> action)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this при завершении этапа this.
CompletableFuture<T> whenCompleteAsync(BiConsumer<? super T, ? super Throwable> action, Executor executor)
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие с использованием переданного Executor при завершении этапа this.

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

clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создает и возвращает копию этого объекта.
boolean equals(Object obj)
Показывает, равен ли этот объект какому-либо другому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии.
Финализация устарела и будет удалена в одном из будущих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени.

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

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
При необходимости ожидает завершения этого future, а затем возвращает результат.
Определено в:
get в интерфейсе Future<T>
Возвращает:
значение результата
Выбрасывает:
CancellationException — если этот future был отменен
ExecutionException — если этот future завершился с исключением
InterruptedException — если текущий поток был прерван во время ожидания

get

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

join

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

getNow

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

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

Этот метод аналогичен 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, в котором, когда this этап завершается нормально, функция выполняется с использованием стандартного средства асинхронного выполнения this этапа и получает результат this этапа в качестве аргумента. Правила обработки исключительного завершения см. в документации CompletionStage.
Определено в:
thenApplyAsync в интерфейсе CompletionStage<T>
Параметры типа:
U — тип возвращаемого значения функции
Параметры:
fn — функция для вычисления значения возвращаемого CompletionStage
Возвращает:
новый CompletionStage

thenApplyAsync

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

thenAccept

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

thenAcceptAsync

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

thenAcceptAsync

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

thenRun

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

thenRunAsync

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

thenRunAsync

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

thenCombine

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

runAfterBoth

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

runAfterBothAsync

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

runAfterBothAsync

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

acceptEitherAsync

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

runAfterEither

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

runAfterEitherAsync

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

runAfterEitherAsync

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

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

После нормального завершения стадии this заданная функция вызывается с результатом стадии this в качестве аргумента и возвращает другую стадию 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.

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

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

Правила обработки исключительного завершения см. в документации CompletionStage.

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

whenComplete

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

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

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

Определено в:
whenComplete в интерфейсе CompletionStage<T>
Параметры:
action — выполняемое действие
Возвращает:
новый CompletionStage

whenCompleteAsync

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

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

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

Определено в:
whenCompleteAsync в интерфейсе CompletionStage<T>
Параметры:
action — выполняемое действие
Возвращает:
новый CompletionStage

whenCompleteAsync

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

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

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

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

handle

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

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

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

handleAsync

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

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

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

handleAsync

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

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

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

toCompletableFuture

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

exceptionally

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

exceptionallyAsync

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

exceptionallyAsync

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

exceptionallyCompose

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

exceptionallyComposeAsync

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

exceptionallyComposeAsync

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

allOf

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

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

Параметры:
cfs — объекты CompletableFuture
Возвращает:
новый CompletableFuture, завершающийся после завершения всех переданных CompletableFuture
Выбрасывает:
NullPointerException — если массив или любой из его элементов равен null

anyOf

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

cancel

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

isCancelled

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

isCompletedExceptionally

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

state

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

obtrudeValue

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

obtrudeException

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

getNumberOfDependents

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

toString

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

newIncompleteFuture

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

defaultExecutor

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

copy

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

minimalCompletionStage

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

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

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

completeAsync

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

completeAsync

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

orTimeout

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

completeOnTimeout

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

delayedExecutor

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

delayedExecutor

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

completedStage

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

failedFuture

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

failedStage

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

Сообщить об ошибке или предложить улучшение
Дополнительную справочную информацию по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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.

Spec-Zone.ru

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