ICompletionStage Интерфейс

Определение

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

[Android.Runtime.Register("java/util/concurrent/CompletionStage", "", "Java.Util.Concurrent.ICompletionStageInvoker", ApiSince=24)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public interface ICompletionStage : Android.Runtime.IJavaObject, IDisposable, Java.Interop.IJavaPeerable
[<Android.Runtime.Register("java/util/concurrent/CompletionStage", "", "Java.Util.Concurrent.ICompletionStageInvoker", ApiSince=24)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type ICompletionStage = interface
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
Производный
Атрибуты
Реализации

Комментарии

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

<Ул>

<li>Вычисление, выполняемое этапом, может быть выражено как функция, потребитель или runnable (используя методы с именами, включая <em>apply</em>, em>accept</>em или <em run</em>> соответственно) в зависимости от того, <требуется ли аргументы и /или выдает результаты. Рассмотрим пример.

{@code
            stage.thenApply(x -> square(x))
                 .thenAccept(x -> System.out.print(x))
                 .thenRun(() -> System.out.println());}

Дополнительная форма (<em>compose</em>) позволяет создавать конвейеры вычислений из функций, возвращающих этапы завершения.

Любой аргумент вычисления этапа является результатом вычисления этапа активации.

<выполнение>одного этапа может быть вызвано завершением одного этапа или двумя этапами или двумя этапами. Зависимости на одном этапе упорядочены с помощью методов с префиксом <em>и< em>. Те, которые активируются завершением em>обоих<< или em> двух этапов, могут <объединять< или эм>> их результаты или эффекты, используя соответствующие именованные методы. Те, которые активируются <>em или< em> двух этапов, не гарантируют, какие результаты или эффекты используются для вычисления зависимых этапов.

<Li>Dependencies между этапами управления триггером вычислений, но в противном случае не гарантирует какой-либо конкретный порядок. Кроме того, выполнение вычислений нового этапа может быть организовано любым из трех способов: выполнение по умолчанию, асинхронное выполнение по умолчанию (использование методов с суффиксом em async</em>, использующим асинхронное средство выполнения по умолчанию) или настраиваемым (через предоставленный объектExecutor).>< Свойства выполнения режимов по умолчанию и асинхронных режимов задаются реализациями CompletionStage, а не этим интерфейсом. Методы с явными аргументами исполнителя могут иметь произвольные свойства выполнения и даже не поддерживают параллельное выполнение, но упорядочивается для обработки таким образом, чтобы обеспечить асинхронность.

<li>Две формы методов (#handle handle и #whenComplete whenComplete) поддерживают безусловные вычисления, завершенные ли этап активации обычно или исключительно. Метод #exceptionally exceptionally поддерживает вычисления только после завершения этапа активации исключительно, вычисление результата замены аналогично ключевому слову java catch . Во всех других случаях, если вычисление этапа завершается резко с исключением или ошибкой (снято), то все зависимые этапы, требующие завершения его исключительно, с CompletionException удержанием исключения в качестве его причины. Если этап зависит от <em>обоих< или em> двух этапов, и как полностью, то ЗавершениеException может соответствовать одному из этих исключений. Если этап зависит от <эм>или< эм> из двух других, и только один из них завершается исключительно, никаких гарантий о том, завершается ли зависимый этап обычно или исключительно. В случае метода whenComplete, когда предоставленное действие сталкивается с исключением, этап завершается исключительно с этим исключением, если исходная стадия также не завершена исключительно, в этом случае исключительное завершение с исходной стадии имеет предпочтение и распространяется на зависимый этап.

</ul>

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

Форма #handle handle метода — это наиболее общий способ создания этапа продолжения, безоговорочно выполняющий вычисление, которое получает результат и исключение (если таковой) триггера CompletionStage и вычисляет произвольный результат. Метод #whenComplete whenComplete аналогичен, но сохраняет результат триггерного этапа вместо вычисления нового. Поскольку нормальный результат этапа может быть null, оба метода должны иметь структуру вычислений таким образом:

{@code (result, exception) -> {
              if (exception == null) {
                // triggering stage completed normally
              } else {
                // triggering stage completed exceptionally
              }
            }}

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

Добавлено в версии 1.8.

Java документации по java.util.concurrent.CompletionStage.

Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".

Свойства

Имя Описание
Handle

Возвращает значение JNI базового объекта Android.

(Унаследовано от IJavaObject)
JniIdentityHashCode

Возвращает значение java.lang.System.identityHashCode() для упаковаемого экземпляра.

(Унаследовано от IJavaPeerable)
JniManagedPeerState

Состояние управляемого однорангового узла.

(Унаследовано от IJavaPeerable)
JniPeerMembers

Поддержка доступа к членам и вызовов.

(Унаследовано от IJavaPeerable)
PeerReference

JniObjectReference Возвращает экземпляр объекта в оболочке Java.

(Унаследовано от IJavaPeerable)

Методы

Имя Описание
AcceptEither(ICompletionStage, IConsumer)

Возвращает новый объект CompleteStage, который при выполнении этого или другого этапа обычно выполняется с соответствующим результатом в качестве аргумента предоставленного действия.

AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor)

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

AcceptEitherAsync(ICompletionStage, IConsumer)

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

ApplyToEither(ICompletionStage, IFunction)

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

ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor)

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

ApplyToEitherAsync(ICompletionStage, IFunction)

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

Disposed()

Вызывается при удалении экземпляра.

(Унаследовано от IJavaPeerable)
DisposeUnlessReferenced()

Если нет невыполненных ссылок на этот экземпляр, то вызывается Dispose(); в противном случае ничего не делает.

(Унаследовано от IJavaPeerable)
Exceptionally(IFunction)

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

ExceptionallyAsync(IFunction, IExecutor)

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

ExceptionallyAsync(IFunction)

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

ExceptionallyCompose(IFunction)

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

ExceptionallyComposeAsync(IFunction, IExecutor)

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

ExceptionallyComposeAsync(IFunction)

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

Finalized()

Вызывается при завершении экземпляра.

(Унаследовано от IJavaPeerable)
Handle(IBiFunction)

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

HandleAsync(IBiFunction, IExecutor)

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

HandleAsync(IBiFunction)

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

RunAfterBoth(ICompletionStage, IRunnable)

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

RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor)

Возвращает новый объект CompleteStage, который, когда этот и другой этап выполняются как обычно, выполняет заданное действие с помощью предоставленного исполнителя.

RunAfterBothAsync(ICompletionStage, IRunnable)

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

RunAfterEither(ICompletionStage, IRunnable)

Возвращает новый этап завершения, который, когда выполнение данного или другого этапа выполняется обычно.

RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor)

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

RunAfterEitherAsync(ICompletionStage, IRunnable)

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

SetJniIdentityHashCode(Int32)

Задайте значение, возвращаемое JniIdentityHashCode.

(Унаследовано от IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

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

(Унаследовано от IJavaPeerable)
SetPeerReference(JniObjectReference)

Задайте значение, возвращаемое PeerReference.

(Унаследовано от IJavaPeerable)
ThenAccept(IConsumer)

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

ThenAcceptAsync(IConsumer, IExecutor)

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

ThenAcceptAsync(IConsumer)

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

ThenAcceptBoth(ICompletionStage, IBiConsumer)

Возвращает новый объект CompleteStage, который, когда этот и другой этап выполняются как обычно, выполняется с двумя результатами в качестве аргументов предоставленного действия.

ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor)

Возвращает новый объект CompleteStage, который, когда этот и другой этап выполняются как обычно, выполняется с помощью предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленного действия.

ThenAcceptBothAsync(ICompletionStage, IBiConsumer)

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

ThenApply(IFunction)

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

ThenApplyAsync(IFunction, IExecutor)

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

ThenApplyAsync(IFunction)

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

ThenCombine(ICompletionStage, IBiFunction)

Возвращает новый объект CompleteStage, который, когда этот и другой этап выполняются как обычно, выполняется с двумя результатами в качестве аргументов для предоставленной функции.

ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor)

Возвращает новый объект CompleteStage, который, когда этот и другой этап выполняются как обычно, выполняется с помощью предоставленного исполнителя, с двумя результатами в качестве аргументов для предоставленной функции.

ThenCombineAsync(ICompletionStage, IBiFunction)

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

ThenCompose(IFunction)

Возвращает новое значение CompleteStage, которое завершается с тем же значением, что и Значение Завершения, возвращаемое данной функцией.

ThenComposeAsync(IFunction, IExecutor)

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

ThenComposeAsync(IFunction)

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

ThenRun(IRunnable)

Возвращает новый этап завершения, который, когда этот этап завершается нормально, выполняет заданное действие.

ThenRunAsync(IRunnable, IExecutor)

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

ThenRunAsync(IRunnable)

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

ToCompletableFuture()

CompletableFuture Возвращает те же свойства завершения, что и на этом этапе.

UnregisterFromRuntime()

Отмените регистрацию этого экземпляра, чтобы среда выполнения не возвращала ее из будущих Java.Interop.JniRuntime+JniValueManager.PeekValue вызовов.

(Унаследовано от IJavaPeerable)
WhenComplete(IBiConsumer)

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

WhenCompleteAsync(IBiConsumer, IExecutor)

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

WhenCompleteAsync(IBiConsumer)

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

Методы расширения

Имя Описание
GetJniTypeName(IJavaPeerable)

Возвращает имя JNI типа экземпляра self.

JavaAs<TResult>(IJavaPeerable)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

JavaCast<TResult>(IJavaObject)

Выполняет преобразование типа, проверяемого средой выполнения Android.

JavaCast<TResult>(IJavaObject)

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

TryJavaCast<TResult>(IJavaPeerable, TResult)

Попробуйте принуждать к типуself, проверяяTResult, является ли приведение допустимым на стороне Java.

Применяется к