Language

ICompletionStage インターフェイス

定義

別の CompletionStage が完了したときにアクションを実行するか、値を計算する非同期計算のステージ。

[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
派生
属性
実装

注釈

別の CompletionStage が完了したときにアクションを実行するか、値を計算する非同期計算のステージ。 ステージは計算の終了時に完了しますが、これにより他の依存ステージがトリガーされる場合があります。 このインターフェイスで定義されている機能は、いくつかの基本的な形式のみを受け取り、さまざまな使用スタイルをキャプチャするためのより大きな一連のメソッドに拡張されます。

<ul>

<li>ステージによって実行される計算は、関数として表され、 コンシューマー、または Runnable (<em>apply</em>、<em</em>>、または <em>run</em> などの名前を持つメソッドを使用) は、引数を必要とするか、結果を生成するかによって異なります。 例えば次が挙げられます。

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

追加のフォーム (<em>compose</em>) を使用すると、完了ステージを返す関数から計算パイプラインを構築できます。

ステージの計算に対する引数は、トリガー ステージの計算の結果です。

<li>1 つのステージの実行は、1 つのステージの完了、または 2 つのステージの両方、または 2 つのステージのいずれかによってトリガーされる場合があります。 単一ステージへの依存関係は、プレフィックスが <em>then</em> のメソッドを使用して配置されます。 2 つのステージの <em>both</em> の完了によってトリガーされるものは <em>combine</em> 、対応する名前付きメソッドを使用して結果または効果を得る場合があります。 2 つのステージの<em></em>によってトリガーされるものは、依存ステージの計算にどの結果または効果が使用されるかについて保証しません。

<li>ステージ間の依存関係は計算のトリガーを制御しますが、それ以外の場合は特定の順序を保証しません。 さらに、新しいステージの計算の実行は、既定の実行、既定の非同期実行 (サフィックスが <em>async</em> ステージの既定の非同期実行機能を使用するメソッドを使用する)、またはカスタム (提供された Executorを使用) の 3 つの方法で配置できます。 既定のモードと非同期モードの実行プロパティは、このインターフェイスではなく、CompletionStage 実装によって指定されます。 明示的な Executor 引数を持つメソッドは、任意の実行プロパティを持つ場合があり、同時実行をサポートしていない場合もありますが、非同期に対応する方法で処理用に配置されます。

<li>2 つのメソッド フォーム (#handle handle と #whenComplete whenComplete) は、トリガーステージが正常に完了したか例外的に完了したかに関係なく、無条件計算をサポートします。 メソッド #exceptionally exceptionally では、java catch キーワードと同様に、トリガー ステージが例外的に完了し、置換結果を計算する場合にのみ計算がサポートされます。 他のすべてのケースでは、ステージの計算が (オフの) 例外またはエラーで突然終了した場合、その完了を必要とするすべての依存ステージも例外を原因として保持 CompletionException で、例外を完全に完了します。 ステージが 2 つのステージの <em>both</em> に依存していて、両方とも例外的に完了している場合、CompletionException はこれらの例外のいずれかに対応できます。 ステージが他の 2 つのステージの<em></em>に依存していて、そのうちの 1 つだけが例外的に完了する場合、依存ステージが正常または例外的に完了するかどうかについては保証されません。 メソッド 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ドキュメント。

このページの一部は、によって作成および共有され、に記載されている条件に従って使用される作業に基づく変更です。

プロパティ

名前 説明
Handle

基になる Android オブジェクトの JNI 値を取得します。

(継承元 IJavaObject)
JniIdentityHashCode

ラップされたインスタンスの java.lang.System.identityHashCode() の値を返します。

(継承元 IJavaPeerable)
JniManagedPeerState

マネージド ピアの状態。

(継承元 IJavaPeerable)
JniObjectReferenceControlBlock

別の CompletionStage が完了したときにアクションを実行するか、値を計算する非同期計算のステージ。

(継承元 IJavaPeerable)
JniPeerMembers

メンバー アクセスと呼び出しのサポート。

(継承元 IJavaPeerable)
PeerReference

ラップされたJava オブジェクト インスタンスのJniObjectReferenceを返します。

(継承元 IJavaPeerable)

メソッド

名前 説明
AcceptEither(ICompletionStage, IConsumer)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、指定されたアクションの引数として対応する結果を使用して実行されます。

AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、指定された Executor を使用して実行され、対応する結果が指定されたアクションの引数として返されます。

AcceptEitherAsync(ICompletionStage, IConsumer)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、このステージの既定の非同期実行機能を使用して実行され、対応する結果が指定されたアクションの引数として使用されます。

ApplyToEither(ICompletionStage, IFunction)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、対応する結果が指定された関数の引数として実行されます。

ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、指定された Executor を使用して実行され、対応する結果が指定された関数の引数として返されます。

ApplyToEitherAsync(ICompletionStage, IFunction)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、このステージの既定の非同期実行機能を使用して実行され、対応する結果が指定された関数の引数として使用されます。

Disposed()

インスタンスが破棄されたときに呼び出されます。

(継承元 IJavaPeerable)
DisposeUnlessReferenced()

このインスタンスへの未処理の参照がない場合は、 Dispose()を呼び出します。それ以外の場合は何も実行しません。

(継承元 IJavaPeerable)
Exceptionally(IFunction)

このステージが例外的に完了したときに、このステージの例外を指定された関数の引数として実行する新しい CompletionStage を返します。

ExceptionallyAsync(IFunction, IExecutor)

このステージが例外的に完了すると、指定された Executor を使用して、指定された関数の引数としてこのステージの例外を使用して実行される新しい CompletionStage を返します。

ExceptionallyAsync(IFunction)

このステージが例外的に完了すると、このステージの既定の非同期実行機能を使用して、指定された関数の引数としてこのステージの例外を使用して実行される新しい CompletionStage を返します。

ExceptionallyCompose(IFunction)

このステージが例外的に完了したときに、このステージの例外に適用された指定された関数の結果を使用して構成される新しい CompletionStage を返します。

ExceptionallyComposeAsync(IFunction, IExecutor)

このステージが例外的に完了したときに、指定された Executor を使用して、このステージの例外に適用された指定された関数の結果を使用して構成される新しい CompletionStage を返します。

ExceptionallyComposeAsync(IFunction)

このステージが例外的に完了したときに、このステージの既定の非同期実行機能を使用して、このステージの例外に適用された指定された関数の結果を使用して構成される新しい CompletionStage を返します。

Finalized()

インスタンスが終了したときに呼び出されます。

(継承元 IJavaPeerable)
Handle(IBiFunction)

このステージが正常または例外的に完了したときに、このステージの結果と例外を指定された関数の引数として実行する新しい CompletionStage を返します。

HandleAsync(IBiFunction, IExecutor)

このステージが正常または例外的に完了したときに、指定された Executor を使用して実行される新しい CompletionStage を返します。このステージの結果と例外は、指定された関数の引数として使用されます。

HandleAsync(IBiFunction)

このステージが正常または例外的に完了したときに、このステージの既定の非同期実行機能を使用して実行される新しい CompletionStage を返します。このステージの結果と例外は、指定された関数の引数として使用されます。

RunAfterBoth(ICompletionStage, IRunnable)

このステージと他の特定のステージの両方が正常に完了すると、指定されたアクションを実行する新しい CompletionStage を返します。

RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、指定された Executor を使用して指定されたアクションが実行されます。

RunAfterBothAsync(ICompletionStage, IRunnable)

このステージと他の特定のステージの両方が正常に完了すると、このステージの既定の非同期実行機能を使用して指定されたアクションを実行する新しい CompletionStage を返します。

RunAfterEither(ICompletionStage, IRunnable)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、指定されたアクションが実行されます。

RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、指定された Executor を使用して指定されたアクションが実行されます。

RunAfterEitherAsync(ICompletionStage, IRunnable)

新しい CompletionStage を返します。このステージまたは他の特定のステージが正常に完了すると、このステージの既定の非同期実行機能を使用して指定されたアクションが実行されます。

SetJniIdentityHashCode(Int32)

JniIdentityHashCodeによって返される値を設定します。

(継承元 IJavaPeerable)
SetJniManagedPeerState(JniManagedPeerStates)

別の CompletionStage が完了したときにアクションを実行するか、値を計算する非同期計算のステージ。

(継承元 IJavaPeerable)
SetPeerReference(JniObjectReference)

PeerReferenceによって返される値を設定します。

(継承元 IJavaPeerable)
ThenAccept(IConsumer)

このステージが正常に完了したときに、このステージの結果を指定されたアクションの引数として実行する新しい CompletionStage を返します。

ThenAcceptAsync(IConsumer, IExecutor)

このステージが正常に完了したときに、指定された Executor を使用して実行される新しい CompletionStage を返します。このステージの結果は、指定されたアクションの引数として使用されます。

ThenAcceptAsync(IConsumer)

このステージが正常に完了すると、このステージの既定の非同期実行機能を使用して実行され、このステージの結果が指定されたアクションの引数として使用される新しい CompletionStage を返します。

ThenAcceptBoth(ICompletionStage, IBiConsumer)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、2 つの結果が指定されたアクションの引数として実行されます。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor)

新しい CompletionStage を返します。このステージと指定されたステージの両方が正常に完了すると、指定された Executor を使用して実行され、指定されたアクションの引数として 2 つの結果が返されます。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、このステージの既定の非同期実行機能を使用して実行され、2 つの結果が指定されたアクションの引数として使用されます。

ThenApply(IFunction)

このステージが正常に完了すると、このステージの結果を指定された関数の引数として実行する新しい CompletionStage を返します。

ThenApplyAsync(IFunction, IExecutor)

このステージが正常に完了すると、指定された Executor を使用して実行される新しい CompletionStage を返します。このステージの結果は、指定された関数の引数として使用されます。

ThenApplyAsync(IFunction)

このステージが正常に完了したときに、このステージの既定の非同期実行機能を使用して実行される新しい CompletionStage を返します。このステージの結果は、指定された関数の引数として使用されます。

ThenCombine(ICompletionStage, IBiFunction)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、2 つの結果が指定された関数の引数として実行されます。

ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、指定された Executor を使用して実行され、指定された関数の引数として 2 つの結果が返されます。

ThenCombineAsync(ICompletionStage, IBiFunction)

新しい CompletionStage を返します。このステージと他の特定のステージの両方が正常に完了すると、このステージの既定の非同期実行機能を使用して実行され、2 つの結果が指定された関数の引数として使用されます。

ThenCompose(IFunction)

指定された関数によって返される CompletionStage と同じ値で完了した新しい CompletionStage を返します。

ThenComposeAsync(IFunction, IExecutor)

指定された Executor を使用して実行される、指定された関数によって返される CompletionStage と同じ値で完了した新しい CompletionStage を返します。

ThenComposeAsync(IFunction)

このステージの既定の非同期実行機能を使用して実行される、指定された関数によって返される CompletionStage と同じ値で完了した新しい CompletionStage を返します。

ThenRun(IRunnable)

このステージが正常に完了したときに、指定されたアクションを実行する新しい CompletionStage を返します。

ThenRunAsync(IRunnable, IExecutor)

このステージが正常に完了すると、指定された Executor を使用して指定されたアクションを実行する新しい CompletionStage を返します。

ThenRunAsync(IRunnable)

このステージが正常に完了したときに、このステージの既定の非同期実行機能を使用して指定されたアクションを実行する新しい CompletionStage を返します。

ToCompletableFuture()

このステージと同じ完了プロパティを保持する CompletableFuture を返します。

UnregisterFromRuntime()

ランタイムが将来の Java.Interop.JniRuntime+JniValueManager.PeekValue 呼び出しから返されないように、このインスタンスの登録を解除します。

(継承元 IJavaPeerable)
WhenComplete(IBiConsumer)

このステージの完了時に指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しい CompletionStage を返します。

WhenCompleteAsync(IBiConsumer, IExecutor)

このステージの完了時に指定された Executor を使用して指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しい CompletionStage を返します。

WhenCompleteAsync(IBiConsumer)

このステージの完了時に、このステージの既定の非同期実行機能を使用して指定されたアクションを実行する、このステージと同じ結果または例外を持つ新しい CompletionStage を返します。

拡張メソッド

名前 説明
GetJniTypeName(IJavaPeerable)

インスタンス selfの型の JNI 名を取得します。

JavaAs<TResult>(IJavaPeerable)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

JavaCast<TResult>(IJavaObject)

Android ランタイムチェック型変換を実行します。

JavaCast<TResult>(IJavaObject)

別の CompletionStage が完了したときにアクションを実行するか、値を計算する非同期計算のステージ。

TryJavaCast<TResult>(IJavaPeerable, TResult)

selfを強制的にTResult入力し、強制型がJava側で有効であることを確認します。

適用対象