Класс 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 |
acceptEither |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с соответствующим результатом в качестве аргумента переданного действия. |
CompletableFuture |
acceptEitherAsync |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и соответствующим результатом в качестве аргумента переданного действия. |
CompletableFuture |
acceptEitherAsync |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием переданного исполнителя и соответствующим результатом в качестве аргумента переданного действия. |
static CompletableFuture |
allOf |
Возвращает новый CompletableFuture, который завершается, когда завершаются все заданные CompletableFuture. |
static CompletableFuture |
anyOf |
Возвращает новый CompletableFuture, который завершается, когда завершается любой из заданных CompletableFuture, с тем же результатом. |
<U> CompletableFuture |
applyToEither |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с соответствующим результатом в качестве аргумента переданной функции. |
<U> CompletableFuture |
applyToEitherAsync |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и соответствующим результатом в качестве аргумента переданной функции. |
<U> CompletableFuture |
applyToEitherAsync |
Возвращает новый CompletionStage, который при нормальном завершении либо this, либо другого заданного этапа выполняется с использованием переданного исполнителя и соответствующим результатом в качестве аргумента переданной функции. |
boolean |
cancel |
Если выполнение еще не завершено, завершает этот CompletableFuture исключением CancellationException. |
boolean |
complete |
Если выполнение еще не завершено, устанавливает заданное значение, которое будут возвращать метод get() и связанные с ним методы. |
CompletableFuture |
completeAsync |
Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной асинхронной задачей с использованием исполнителя по умолчанию. |
CompletableFuture |
completeAsync |
Завершает этот CompletableFuture результатом заданной функции Supplier, вызванной асинхронной задачей с использованием заданного исполнителя. |
static <U> CompletableFuture |
completedFuture |
Возвращает новый CompletableFuture, уже завершенный заданным значением. |
static <U> CompletionStage |
completedStage |
Возвращает новый CompletionStage, уже завершенный заданным значением и поддерживающий только те методы интерфейса CompletionStage. |
boolean |
completeExceptionally |
Если выполнение еще не завершено, вызывает выброс заданного исключения при вызовах метода get() и связанных с ним методов. |
CompletableFuture |
completeOnTimeout |
Завершает этот CompletableFuture заданным значением, если до истечения заданного времени ожидания он не был завершен иным образом. |
CompletableFuture |
copy() |
Возвращает новый CompletableFuture, который нормально завершается тем же значением, что и этот CompletableFuture, когда тот завершается нормально. |
Executor |
defaultExecutor() |
Возвращает Executor по умолчанию, используемый асинхронными методами, в которых Executor не указан. |
static Executor |
delayedExecutor |
Возвращает новый Executor, который отправляет задачу исполнителю по умолчанию после заданной задержки (или без задержки, если она неположительная). |
static Executor |
delayedExecutor |
Возвращает новый Executor, который отправляет задачу заданному базовому исполнителю после заданной задержки (или без задержки, если она неположительная). |
CompletableFuture |
exceptionally |
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции. |
CompletableFuture |
exceptionallyAsync |
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции, используя стандартное средство асинхронного выполнения этапа this. |
CompletableFuture |
exceptionallyAsync |
Возвращает новый CompletionStage, который при исключительном завершении этапа this выполняется с исключением этапа this в качестве аргумента переданной функции, используя переданный Executor. |
CompletableFuture |
exceptionallyCompose |
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this. |
CompletableFuture |
exceptionallyComposeAsync |
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this и стандартного средства асинхронного выполнения этапа this. |
CompletableFuture |
exceptionallyComposeAsync |
Возвращает новый CompletionStage, который при исключительном завершении этапа this объединяется с использованием результата применения переданной функции к исключению этапа this и переданного Executor. |
Throwable |
exceptionNow() |
Возвращает исключение, выброшенное задачей, не дожидаясь ее завершения. |
static <U> CompletableFuture |
failedFuture |
Возвращает новый CompletableFuture, уже завершенный исключением с заданным исключением. |
static <U> CompletionStage |
failedStage |
Возвращает новый CompletionStage, уже завершенный исключением с заданным исключением и поддерживающий только те методы интерфейса CompletionStage. |
T |
get() |
При необходимости ожидает завершения этого future, а затем возвращает его результат. |
T |
get |
При необходимости ожидает завершения этого future не более заданного времени, а затем возвращает его результат, если он доступен. |
T |
getNow |
Возвращает значение результата (или выбрасывает возникшее исключение), если выполнение завершено; в противном случае возвращает заданное значение valueIfAbsent. |
int |
getNumberOfDependents() |
Возвращает оценочное количество CompletableFuture, завершение которых ожидает завершения этого CompletableFuture. |
<U> CompletableFuture |
handle |
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с результатом и исключением этапа this в качестве аргументов переданной функции. |
<U> CompletableFuture |
handleAsync |
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата с исключением этапа this в качестве аргументов переданной функции. |
<U> CompletableFuture |
handleAsync |
Возвращает новый CompletionStage, который при нормальном или исключительном завершении этапа this выполняется с использованием переданного исполнителя и результата с исключением этапа this в качестве аргументов переданной функции. |
boolean |
isCancelled() |
Возвращает true, если этот CompletableFuture был отменен до нормального завершения. |
boolean |
isCompletedExceptionally() |
Возвращает true, если этот CompletableFuture завершился исключительным образом. |
boolean |
isDone() |
Возвращает true, если выполнение завершилось любым способом: нормально, исключительным образом или вследствие отмены. |
T |
join() |
Возвращает значение результата после завершения либо выбрасывает непроверяемое исключение, если выполнение завершилось исключительным образом. |
CompletionStage |
minimalCompletionStage() |
Возвращает новый CompletionStage, который нормально завершается тем же значением, что и этот CompletableFuture, когда тот завершается нормально, и не может быть завершен независимо или использоваться иным образом, не предусмотренным методами интерфейса CompletionStage. |
<U> CompletableFuture |
newIncompleteFuture() |
Возвращает новый незавершенный CompletableFuture типа, который должен возвращаться методом CompletionStage. |
void |
obtrudeException |
Принудительно вызывает выброс заданного исключения при последующих вызовах метода get() и связанных с ним методов независимо от того, завершено ли выполнение. |
void |
obtrudeValue |
Принудительно устанавливает или сбрасывает значение, которое впоследствии будет возвращать метод get() и связанные с ним методы независимо от того, завершено ли выполнение. |
CompletableFuture |
orTimeout |
Завершает этот CompletableFuture исключением TimeoutException, если до истечения заданного времени ожидания он не был завершен иным образом. |
T |
resultNow() |
Возвращает вычисленный результат, не дожидаясь завершения. |
CompletableFuture |
runAfterBoth |
Возвращает новый CompletionStage, который выполняет заданное действие, когда this и другой заданный этап оба завершаются нормально. |
CompletableFuture |
runAfterBothAsync |
Возвращает новый CompletionStage, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this, когда this и другой заданный этап оба завершаются нормально. |
CompletableFuture |
runAfterBothAsync |
Возвращает новый CompletionStage, который выполняет заданное действие с использованием переданного исполнителя, когда this и другой заданный этап оба завершаются нормально. |
CompletableFuture |
runAfterEither |
Возвращает новый CompletionStage, который выполняет заданное действие, когда нормально завершается либо this, либо другой заданный этап. |
CompletableFuture |
runAfterEitherAsync |
Возвращает новый CompletionStage, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this, когда нормально завершается либо this, либо другой заданный этап. |
CompletableFuture |
runAfterEitherAsync |
Возвращает новый CompletionStage, который выполняет заданное действие с использованием переданного исполнителя, когда нормально завершается либо this, либо другой заданный этап. |
static CompletableFuture |
runAsync |
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в ForkJoinPool.commonPool() после выполнения заданного действия. |
static CompletableFuture |
runAsync |
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в заданном исполнителе после выполнения заданного действия. |
Future.State |
state() |
Возвращает состояние вычисления. |
static <U> CompletableFuture |
supplyAsync |
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в ForkJoinPool.commonPool() со значением, полученным при вызове заданного Supplier. |
static <U> CompletableFuture |
supplyAsync |
Возвращает новый CompletableFuture, который асинхронно завершается задачей, выполняющейся в заданном исполнителе со значением, полученным при вызове заданного Supplier. |
CompletableFuture |
thenAccept |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с результатом этапа this в качестве аргумента переданного действия. |
CompletableFuture |
thenAcceptAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата этапа this в качестве аргумента переданного действия. |
CompletableFuture |
thenAcceptAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием переданного Executor и результата этапа this в качестве аргумента переданного действия. |
<U> CompletableFuture |
thenAcceptBoth |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с двумя результатами в качестве аргументов переданного действия. |
<U> CompletableFuture |
thenAcceptBothAsync |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и двух результатов в качестве аргументов переданного действия. |
<U> CompletableFuture |
thenAcceptBothAsync |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием переданного исполнителя и двух результатов в качестве аргументов переданного действия. |
<U> CompletableFuture |
thenApply |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с результатом этапа this в качестве аргумента переданной функции. |
<U> CompletableFuture |
thenApplyAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием стандартного средства асинхронного выполнения этапа this и результата этапа this в качестве аргумента переданной функции. |
<U> CompletableFuture |
thenApplyAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняется с использованием переданного Executor и результата этапа this в качестве аргумента переданной функции. |
<U, |
thenCombine |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с двумя результатами в качестве аргументов переданной функции. |
<U, |
thenCombineAsync |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием стандартного средства асинхронного выполнения этапа this и двух результатов в качестве аргументов переданной функции. |
<U, |
thenCombineAsync |
Возвращает новый CompletionStage, который при нормальном завершении this и другого заданного этапа выполняется с использованием переданного исполнителя и двух результатов в качестве аргументов переданной функции. |
<U> CompletableFuture |
thenCompose |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращенный заданной функцией. |
<U> CompletableFuture |
thenComposeAsync |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращенный заданной функцией, выполняемой с использованием стандартного средства асинхронного выполнения этапа this. |
<U> CompletableFuture |
thenComposeAsync |
Возвращает новый CompletionStage, который завершается тем же значением, что и CompletionStage, возвращенный заданной функцией, выполняемой с использованием переданного Executor. |
CompletableFuture |
thenRun |
Возвращает новый CompletionStage, который выполняет заданное действие при нормальном завершении этапа this. |
CompletableFuture |
thenRunAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this. |
CompletableFuture |
thenRunAsync |
Возвращает новый CompletionStage, который при нормальном завершении этапа this выполняет заданное действие с использованием переданного Executor. |
CompletableFuture |
toCompletableFuture() |
Возвращает этот CompletableFuture. |
String |
toString() |
Возвращает строку, описывающую этот CompletableFuture и его состояние завершения. |
CompletableFuture |
whenComplete |
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие при завершении этапа this. |
CompletableFuture |
whenCompleteAsync |
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие с использованием стандартного средства асинхронного выполнения этапа this при завершении этапа this. |
CompletableFuture |
whenCompleteAsync |
Возвращает новый CompletionStage с тем же результатом или исключением, что и этап this, который выполняет заданное действие с использованием переданного Executor при завершении этапа this. |
Методы, объявленные в классе Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait | Модификатор и тип | Метод | Описание |
|---|---|---|
protected Object |
clone() |
Создает и возвращает копию этого объекта. |
boolean |
equals |
Показывает, равен ли этот объект какому-либо другому объекту. |
protected void |
finalize() |
Устарело, планируется удаление: этот элемент API может быть удален в будущей версии. Финализация устарела и будет удалена в одном из будущих выпусков. |
final Class |
getClass() |
Возвращает класс времени выполнения этого Object. |
int |
hashCode() |
Возвращает хеш-код этого объекта. |
final void |
notify() |
Пробуждает один поток, ожидающий на мониторе этого объекта. |
final void |
notifyAll() |
Пробуждает все потоки, ожидающие на мониторе этого объекта. |
final void |
wait() |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
final void |
wait |
Заставляет текущий поток ожидать пробуждения, обычно в результате уведомления или прерывания, либо до истечения заданного промежутка реального времени. |
Подробное описание конструкторов
CompletableFuture
public CompletableFuture()
Подробное описание методов
supplyAsync
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier)
ForkJoinPool.commonPool(), со значением, полученным при вызове заданного Supplier.- Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
supplier— функция, возвращающая значение, которым будет завершен возвращаемый CompletableFuture - Возвращает:
- новый CompletableFuture
supplyAsync
public static <U> CompletableFuture<U> supplyAsync(Supplier<U> supplier, Executor executor)
- Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
supplier— функция, возвращающая значение, которым будет завершен возвращаемый CompletableFuture -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletableFuture
runAsync
public static CompletableFuture<Void> runAsync(Runnable runnable)
ForkJoinPool.commonPool() после выполнения заданного действия.- Параметры:
-
runnable— действие, которое нужно выполнить перед завершением возвращаемого CompletableFuture - Возвращает:
- новый CompletableFuture
runAsync
public static CompletableFuture<Void> runAsync(Runnable runnable, Executor executor)
- Параметры:
-
runnable— действие, которое нужно выполнить перед завершением возвращаемого CompletableFuture -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletableFuture
completedFuture
public static <U> CompletableFuture<U> completedFuture(U value)
- Параметры типа:
U— тип значения- Параметры:
-
value— значение - Возвращает:
- завершенный CompletableFuture
isDone
get
public T get() throws InterruptedException, ExecutionException
- Определено в:
-
getв интерфейсеFuture<T> - Возвращает:
- значение результата
- Выбрасывает:
-
CancellationException— если этот future был отменен -
ExecutionException— если этот future завершился с исключением -
InterruptedException— если текущий поток был прерван во время ожидания
get
public T get(long timeout, TimeUnit unit) throws InterruptedException, ExecutionException, TimeoutException
- Определено в:
-
getв интерфейсеFuture<T> - Параметры:
-
timeout— максимальное время ожидания -
unit— единица измерения времени ожидания - Возвращает:
- значение результата
- Выбрасывает:
-
CancellationException— если этот future был отменен -
ExecutionException— если этот future завершился с исключением -
InterruptedException— если текущий поток был прерван во время ожидания -
TimeoutException— если время ожидания истекло
join
public T join()
CompletionException, причиной которого является исходное исключение.- Возвращает:
- значение результата
- Выбрасывает:
-
CancellationException— если вычисление было отменено -
CompletionException— если этот future завершился с исключением или вычисление при завершении выбросило исключение
getNow
public T getNow(T 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();
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)
CompletionStagethis этап завершается нормально, выполняется переданная функция, получающая в качестве аргумента результат 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)
CompletionStagethis этап завершается нормально, функция выполняется с использованием стандартного средства асинхронного выполнения this этапа и получает результат this этапа в качестве аргумента. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenApplyAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenApplyAsync
public <U> CompletableFuture<U> thenApplyAsync(Function<? super T, ? extends U> fn, Executor executor)
CompletionStagethis этап завершается нормально, функция выполняется с использованием переданного Executor и получает результат this этапа в качестве аргумента. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenApplyAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
thenAccept
public CompletableFuture<Void> thenAccept(Consumer<? super T> action)
CompletionStagethis этап завершается нормально, выполняется переданное действие, получающее в качестве аргумента результат this этапа. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenAcceptв интерфейсеCompletionStage<T> - Параметры:
-
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action)
CompletionStagethis этап завершается нормально, действие выполняется с использованием стандартного средства асинхронного выполнения this этапа и получает результат this этапа в качестве аргумента. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenAcceptAsyncв интерфейсеCompletionStage<T> - Параметры:
-
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenAcceptAsync
public CompletableFuture<Void> thenAcceptAsync(Consumer<? super T> action, Executor executor)
CompletionStagethis этап завершается нормально, действие выполняется с использованием переданного Executor и получает результат this этапа в качестве аргумента. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenAcceptAsyncв интерфейсеCompletionStage<T> - Параметры:
-
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
thenRun
public CompletableFuture<Void> thenRun(Runnable action)
CompletionStagethis этап завершается нормально, выполняется заданное действие. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenRunв интерфейсеCompletionStage<T> - Параметры:
-
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action)
CompletionStagethis этап завершается нормально, заданное действие выполняется с использованием стандартного средства асинхронного выполнения this этапа. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenRunAsyncв интерфейсеCompletionStage<T> - Параметры:
-
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenRunAsync
public CompletableFuture<Void> thenRunAsync(Runnable action, Executor executor)
CompletionStagethis этап завершается нормально, заданное действие выполняется с использованием переданного 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)
CompletionStagethis этап и другой заданный этап завершаются нормально, переданная функция выполняется с двумя результатами в качестве аргументов. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenCombineв интерфейсеCompletionStage<T> - Параметры типа:
U— тип результата другого CompletionStageV— тип возвращаемого значения функции- Параметры:
-
other— другой CompletionStage -
fn— функция для вычисления значения возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
thenCombineAsync
public <U,V> CompletableFuture<V> thenCombineAsync(CompletionStage<? extends U> other, BiFunction<? super T, ? super U, ? extends V> fn)
CompletionStagethis этап и другой заданный этап завершаются нормально, функция выполняется с использованием стандартного средства асинхронного выполнения this этапа и получает два результата в качестве аргументов. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenCombineAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип результата другого CompletionStageV— тип возвращаемого значения функции- Параметры:
-
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)
CompletionStagethis этап и другой заданный этап завершаются нормально, функция выполняется с использованием переданного исполнителя и получает два результата в качестве аргументов. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenCombineAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип результата другого CompletionStageV— тип возвращаемого значения функции- Параметры:
-
other— другой CompletionStage -
fn— функция для вычисления значения возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
thenAcceptBoth
public <U> CompletableFuture<Void> thenAcceptBoth(CompletionStage<? extends U> other, BiConsumer<? super T, ? super U> action)
CompletionStagethis этап и другой заданный этап завершаются нормально, переданное действие выполняется с двумя результатами в качестве аргументов. Правила обработки исключительного завершения см. в документации 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)
CompletionStagethis этап и другой заданный этап завершаются нормально, действие выполняется с использованием стандартного средства асинхронного выполнения 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)
CompletionStagethis этап и другой заданный этап завершаются нормально, действие выполняется с использованием переданного исполнителя и получает два результата в качестве аргументов. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
thenAcceptBothAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип результата другого CompletionStage- Параметры:
-
other— другой CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
runAfterBoth
public CompletableFuture<Void> runAfterBoth(CompletionStage<?> other, Runnable action)
CompletionStagethis этап и другой заданный этап завершаются нормально, выполняется заданное действие. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
runAfterBothв интерфейсеCompletionStage<T> - Параметры:
-
other— другой CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action)
CompletionStagethis этап и другой заданный этап завершаются нормально, заданное действие выполняется с использованием стандартного средства асинхронного выполнения this этапа. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
runAfterBothAsyncв интерфейсеCompletionStage<T> - Параметры:
-
other— другой CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
runAfterBothAsync
public CompletableFuture<Void> runAfterBothAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStagethis и другой указанной стадии выполняет заданное действие с помощью предоставленного исполнителя. Правила обработки исключительного завершения см. в документации 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)
CompletionStagethis или другой указанной стадии выполняется с соответствующим результатом в качестве аргумента переданной функции. Правила обработки исключительного завершения см. в документации 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)
CompletionStagethis или другой указанной стадии выполняется с помощью средства асинхронного выполнения по умолчанию стадии 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)
CompletionStagethis или другой указанной стадии выполняется с помощью предоставленного исполнителя, а соответствующий результат передаётся в качестве аргумента переданной функции. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
applyToEitherAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
other— другая стадия CompletionStage -
fn— функция для вычисления значения возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
acceptEither
public CompletableFuture<Void> acceptEither(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStagethis или другой указанной стадии выполняется с соответствующим результатом в качестве аргумента переданного действия. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
acceptEitherв интерфейсеCompletionStage<T> - Параметры:
-
other— другая стадия CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
acceptEitherAsync
public CompletableFuture<Void> acceptEitherAsync(CompletionStage<? extends T> other, Consumer<? super T> action)
CompletionStagethis или другой указанной стадии выполняется с помощью средства асинхронного выполнения по умолчанию стадии 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)
CompletionStagethis или другой указанной стадии выполняется с помощью предоставленного исполнителя, а соответствующий результат передаётся в качестве аргумента переданного действия. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
acceptEitherAsyncв интерфейсеCompletionStage<T> - Параметры:
-
other— другая стадия CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
runAfterEither
public CompletableFuture<Void> runAfterEither(CompletionStage<?> other, Runnable action)
CompletionStagethis или другой указанной стадии выполняет заданное действие. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
runAfterEitherв интерфейсеCompletionStage<T> - Параметры:
-
other— другая стадия CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action)
CompletionStagethis или другой указанной стадии выполняет заданное действие с помощью средства асинхронного выполнения по умолчанию стадии this. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
runAfterEitherAsyncв интерфейсеCompletionStage<T> - Параметры:
-
other— другая стадия CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage - Возвращает:
- новый CompletionStage
runAfterEitherAsync
public CompletableFuture<Void> runAfterEitherAsync(CompletionStage<?> other, Runnable action, Executor executor)
CompletionStagethis или другой указанной стадии выполняет заданное действие с помощью предоставленного исполнителя. Правила обработки исключительного завершения см. в документации CompletionStage.- Определено в:
-
runAfterEitherAsyncв интерфейсеCompletionStage<T> - Параметры:
-
other— другая стадия CompletionStage -
action— действие, которое нужно выполнить перед завершением возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
thenCompose
public <U> CompletableFuture<U> thenCompose(Function<? super T, ? extends CompletionStage<U>> fn)
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)
CompletionStagethis. После нормального завершения стадии 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После нормального завершения стадии 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)
CompletionStagethis, который выполняет заданное действие после завершения стадии 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)
CompletionStagethis, который после завершения стадии 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)
CompletionStagethis, который выполняет заданное действие с помощью предоставленного исполнителя 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)
CompletionStagethis выполняется с результатом и исключением стадии 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)
CompletionStagethis выполняется с помощью средства асинхронного выполнения по умолчанию стадии 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)
CompletionStagethis выполняется с помощью предоставленного исполнителя; результат и исключение стадии this передаются в качестве аргументов переданной функции. После завершения стадии this заданная функция вызывается с результатом (или null, если его нет) и исключением (или null, если его нет) стадии this в качестве аргументов; результат функции используется для завершения возвращённой стадии.
- Определено в:
-
handleAsyncв интерфейсеCompletionStage<T> - Параметры типа:
U— тип возвращаемого значения функции- Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
toCompletableFuture
public CompletableFuture<T> toCompletableFuture()
- Определено в:
-
toCompletableFutureв интерфейсеCompletionStage<T> - Возвращает:
- этот CompletableFuture
exceptionally
public CompletableFuture<T> exceptionally(Function<Throwable, ? extends T> fn)
CompletionStagethis выполняется с исключением стадии this в качестве аргумента переданной функции. В противном случае, если стадия this завершается нормально, возвращённая стадия также завершается нормально с тем же значением.- Определено в:
-
exceptionallyв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage, еслиthisCompletionStage завершился исключительным образом - Возвращает:
- новый CompletionStage
exceptionallyAsync
public CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn)
CompletionStagethis выполняется с исключением стадии this в качестве аргумента переданной функции с помощью средства асинхронного выполнения по умолчанию стадии this. В противном случае, если стадия this завершается нормально, возвращённая стадия также завершается нормально с тем же значением.- Определено в:
-
exceptionallyAsyncв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage, еслиthisCompletionStage завершился исключительным образом - Возвращает:
- новый CompletionStage
- Начиная с версии:
- 12
exceptionallyAsync
public CompletableFuture<T> exceptionallyAsync(Function<Throwable, ? extends T> fn, Executor executor)
CompletionStagethis выполняется с исключением стадии this в качестве аргумента переданной функции с помощью предоставленного исполнителя Executor. В противном случае, если стадия this завершается нормально, возвращённая стадия также завершается нормально с тем же значением.- Определено в:
-
exceptionallyAsyncв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция для вычисления значения возвращаемого CompletionStage, еслиthisCompletionStage завершился исключительным образом -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
- Начиная с версии:
- 12
exceptionallyCompose
public CompletableFuture<T> exceptionallyCompose(Function<Throwable, ? extends CompletionStage<T>> fn)
CompletionStagethis составляется с использованием результатов функции, применённой к исключению этапа this.- Определено в:
-
exceptionallyComposeв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция, используемая для вычисления возвращаемого CompletionStage, если CompletionStagethisзавершился с исключением - Возвращает:
- новый CompletionStage
- С версии:
- 12
exceptionallyComposeAsync
public CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn)
CompletionStagethis составляется с использованием результатов функции, применённой к исключению этапа this, с использованием средства асинхронного выполнения по умолчанию этапа this.- Определено в:
-
exceptionallyComposeAsyncв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция, используемая для вычисления возвращаемого CompletionStage, если CompletionStagethisзавершился с исключением - Возвращает:
- новый CompletionStage
- С версии:
- 12
exceptionallyComposeAsync
public CompletableFuture<T> exceptionallyComposeAsync(Function<Throwable, ? extends CompletionStage<T>> fn, Executor executor)
CompletionStagethis составляется с использованием результатов функции, применённой к исключению этапа this, с использованием предоставленного Executor.- Определено в:
-
exceptionallyComposeAsyncв интерфейсеCompletionStage<T> - Параметры:
-
fn— функция, используемая для вычисления возвращаемого CompletionStage, если CompletionStagethisзавершился с исключением -
executor— исполнитель для асинхронного выполнения - Возвращает:
- новый CompletionStage
- С версии:
- 12
allOf
public static CompletableFuture<Void> allOf(CompletableFuture<?>... cfs)
null. Этот метод, в частности, позволяет дождаться завершения набора независимых CompletableFuture, прежде чем продолжить выполнение программы, например: CompletableFuture.allOf(c1, c2,
c3).join();.
- Параметры:
-
cfs— объекты CompletableFuture - Возвращает:
- новый CompletableFuture, завершающийся после завершения всех переданных CompletableFuture
- Выбрасывает:
-
NullPointerException— если массив или любой из его элементов равенnull
anyOf
public static CompletableFuture<Object> anyOf(CompletableFuture<?>... cfs)
- Параметры:
-
cfs— объекты CompletableFuture - Возвращает:
- новый CompletableFuture, который завершается результатом или исключением любого из переданных CompletableFuture при завершении одного из них
- Выбрасывает:
-
NullPointerException— если массив или любой из его элементов равенnull
cancel
public boolean cancel(boolean mayInterruptIfRunning)
CancellationException. Зависимые CompletableFuture, которые ещё не завершены, также завершатся с исключением — с CompletionException, вызванным этим CancellationException.isCancelled
public boolean isCancelled()
true, если этот CompletableFuture был отменён до нормального завершения.- Определено в:
-
isCancelledв интерфейсеFuture<T> - Возвращает:
-
true, если этот CompletableFuture был отменён до нормального завершения
isCompletedExceptionally
public boolean isCompletedExceptionally()
true, если этот CompletableFuture завершился с исключением любым способом. Возможные причины включают отмену, явный вызов
completeExceptionally и внезапное завершение действия CompletionStage.- Возвращает:
-
true, если этот CompletableFuture завершился с исключением
state
obtrudeValue
public void obtrudeValue(T value)
get() и связанными методами, независимо от того, завершено ли вычисление. Этот метод предназначен только для использования при обработке ошибок; даже в таких случаях зависимые вычисления, уже выполняющиеся, могут использовать ранее установленный результат вместо перезаписанного.- Параметры:
-
value— значение завершения
obtrudeException
public void obtrudeException(Throwable ex)
get() и связанных методов, независимо от того, завершено ли вычисление. Этот метод предназначен только для использования при обработке ошибок; даже в таких случаях зависимые вычисления, уже выполняющиеся, могут использовать ранее установленный результат вместо перезаписанного.- Параметры:
-
ex— исключение - Выбрасывает:
-
NullPointerException— если исключение равно null
getNumberOfDependents
public int getNumberOfDependents()
- Возвращает:
- количество зависимых CompletableFuture
toString
public String toString()
"Completed normally" или строку
"Completed exceptionally" либо строку "Not
completed" с последующим количеством CompletableFuture, зависящих от его завершения, если таковые имеются.newIncompleteFuture
public <U> CompletableFuture<U> newIncompleteFuture()
- Параметры типа:
U— тип значения- Возвращает:
- новый CompletableFuture
- С версии:
- 9
defaultExecutor
public Executor defaultExecutor()
ForkJoinPool.commonPool(), если он поддерживает более одного параллельного потока; в противном случае используется Executor с одним потоком для каждой асинхронной задачи. Этот метод может быть переопределён в подклассах для возврата Executor, предоставляющего как минимум один независимый поток.- Возвращает:
- исполнитель
- С версии:
- 9
copy
public CompletableFuture<T> copy()
thenApply(x -> x). Этот метод может быть полезен для «защитного копирования», позволяя клиентам организовывать зависимые действия, но не завершая объект самостоятельно.- Возвращает:
- новый CompletableFuture
- С версии:
- 9
minimalCompletionStage
public CompletionStage<T> minimalCompletionStage()
CompletionStage. Если этот CompletableFuture завершается с исключением, возвращённый CompletionStage завершается с исключением CompletionException, содержащим это исключение в качестве причины. Если подкласс не переопределяет этот метод, из минимального CompletionStage можно получить новый неминимальный CompletableFuture со всеми доступными методами с помощью toCompletableFuture(). Например, завершения минимального этапа можно дождаться с помощью
minimalStage.toCompletableFuture().join();
- Возвращает:
- новый CompletionStage
- С версии:
- 9
completeAsync
public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier, Executor executor)
- Параметры:
-
supplier— функция, возвращающая значение, которым будет завершён этот CompletableFuture -
executor— исполнитель для асинхронного выполнения - Возвращает:
- этот CompletableFuture
- С версии:
- 9
completeAsync
public CompletableFuture<T> completeAsync(Supplier<? extends T> supplier)
- Параметры:
-
supplier— функция, возвращающая значение, которым будет завершён этот CompletableFuture - Возвращает:
- этот CompletableFuture
- С версии:
- 9
orTimeout
public CompletableFuture<T> orTimeout(long timeout, TimeUnit unit)
TimeoutException, если он не завершился иным образом до истечения заданного времени ожидания.- Параметры:
-
timeout— время ожидания до завершения с исключением TimeoutException, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
- этот CompletableFuture
- С версии:
- 9
completeOnTimeout
public CompletableFuture<T> completeOnTimeout(T value, long timeout, TimeUnit unit)
- Параметры:
-
value— значение, используемое по истечении времени ожидания -
timeout— время ожидания до нормального завершения с заданным значением, в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраtimeout - Возвращает:
- этот CompletableFuture
- С версии:
- 9
delayedExecutor
public static Executor delayedExecutor(long delay, TimeUnit unit, Executor executor)
execute возвращённого исполнителя.- Параметры:
-
delay— длительность задержки в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраdelay -
executor— базовый исполнитель - Возвращает:
- новый исполнитель с задержкой
- С версии:
- 9
delayedExecutor
public static Executor delayedExecutor(long delay, TimeUnit unit)
execute возвращённого исполнителя.- Параметры:
-
delay— длительность задержки в единицахunit -
unit—TimeUnit, определяющий интерпретацию параметраdelay - Возвращает:
- новый исполнитель с задержкой
- С версии:
- 9
completedStage
public static <U> CompletionStage<U> completedStage(U value)
CompletionStage.- Параметры типа:
U— тип значения- Параметры:
-
value— значение - Возвращает:
- завершённый CompletionStage
- С версии:
- 9
failedFuture
public static <U> CompletableFuture<U> failedFuture(Throwable ex)
- Параметры типа:
U— тип значения- Параметры:
-
ex— исключение - Возвращает:
- CompletableFuture, завершённый с исключением
- С версии:
- 9
failedStage
public static <U> CompletionStage<U> failedStage(Throwable ex)
CompletionStage.- Параметры типа:
U— тип значения- Параметры:
-
ex— исключение - Возвращает:
- CompletionStage, завершённый с исключением
- С версии:
- 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.