語言

CompletableFuture 類別

定義

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

[Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)]
[Java.Interop.JavaTypeParameters(new System.String[] { "T" })]
public class CompletableFuture : Java.Lang.Object, IDisposable, Java.Util.Concurrent.ICompletionStage, Java.Util.Concurrent.IFuture
[<Android.Runtime.Register("java/util/concurrent/CompletableFuture", ApiSince=24, DoNotGenerateAcw=true)>]
[<Java.Interop.JavaTypeParameters(new System.String[] { "T" })>]
type CompletableFuture = class
    inherit Object
    interface ICompletionStage
    interface IJavaObject
    interface IDisposable
    interface IJavaPeerable
    interface IFuture
繼承
CompletableFuture
屬性
實作

備註

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

當兩個或多個執行緒嘗試 #complete complete、 或 #completeExceptionally completeExceptionally#cancel cancel CompletableFuture 時,只有一個執行緒成功。

除了這些及相關直接操作狀態與結果的方法外,CompletableFuture 還實作以下政策介面 CompletionStage : <ul>

<li>對於 em<非非同步>/em< 方法的依賴完備>所提供的動作,可以由完成當前 CompletableFuture 的執行緒執行,或由任何完成方法的呼叫者執行。

<li>所有 <未明確執行者參數的非>同步</em> 方法皆使用 ( ForkJoinPool#commonPool() 除非不支援至少兩級平行處理,此時需建立新執行緒執行每個任務)。 為了簡化監控、除錯與追蹤,所有產生的非同步任務皆為標記介面 AsynchronousCompletionTask的實例。 帶有時間延遲的操作可以使用此類別中定義的適配器方法,例如: supplyAsync(supplier, delayedExecutor(timeout, timeUnit)) 為了支援有延遲和逾時的方法,這個類別最多維護一個守護進程用於觸發和取消動作,而不是執行執行。

<li>所有 CompletionStage 方法皆獨立於其他公開方法實作,因此一個方法的行為不會受到子類中其他方法覆寫的影響。

</ul>

CompletableFuture 也實作 Future 以下政策: <ul>

<由於>(與 FutureTask不同)此類別無法直接控制導致其完成的計算,消去僅被視為另一種例外完備化。 方法 #cancel cancel 與 具有相同的效果 completeExceptionally(new CancellationException())。 #isCompletedExceptionally方法可用來判斷完成未來是否以特殊方式完成。

<li>若發生異常完備且有 CompletionException,則#get()#get(long, TimeUnit)用與 CompletionException 相同原因的 拋出方法 和 ExecutionException 。 為了簡化大多數情境中的使用,這個類別也定義了方法 #join() ,而 #getNow 在這些情況下直接拋出 CompletionException。 </ul>

用於傳遞完備結果(即類型為 T參數)的方法參數可能是空的,但若對其他參數傳入空值,則會導致拋出 。NullPointerException

新增於1.8版本。

的 java.util.concurrent.CompletableFutureJava 檔。

此頁面的部分是根據 Android 開放原始碼專案所建立和共用的工作進行修改,並根據 Creative Commons 2.5 屬性授權中所述的詞彙使用。

建構函式

名稱 Description
CompletableFuture()

會產生一個新的不完整 CompletableFuture。

CompletableFuture(IntPtr, JniHandleOwnership)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

屬性

名稱 Description
Class

回傳此 Object的執行時類別。

(繼承來源 Object)
Handle

底層 Android 實例的帳號。

(繼承來源 Object)
IsCancelled

如果這個CompletableFuture在正常完成前被取消,則會退貨 true 。

IsCompletedExceptionally

如果這個 CompletableFuture 以任何方式異常完成,則會回傳 true 。

IsDone

若以任何方式完成退貨 true :通常、例外或取消。

JniIdentityHashCode

取得由互通執行時指派給此 Java 對等端的身份雜湊碼。

(繼承來源 Object)
JniManagedPeerState

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
JniPeerMembers

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

NumberOfDependents

回傳預計完成的CompletableFuture數量,其完成尚未完成的CompletableFutures數量。

PeerReference

取得這個 Java 節點的 JNI 物件參考。

(繼承來源 Object)
ThresholdClass

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ThresholdType

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

方法

名稱 Description
AcceptEither(ICompletionStage, IConsumer)

回傳一個新的完備階段,當該階段或另一個階段正常完成時,執行時會以相應結果作為所提供動作的參數。

AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor)

回傳一個新的 CompletionStage,當該階段或其他指定階段正常完成時,會使用所提供的執行者執行,並以相應結果作為所提供動作的參數。

AcceptEitherAsync(ICompletionStage, IConsumer)

回傳一個新的 CompletionStage,當該階段或其他指定階段正常完成時,會使用該階段預設的非同步執行設施執行,並以相應結果作為所提供動作的參數。

AllOf(CompletableFuture[])

回傳一個新的 CompletableFuture,當所有給定的 CompletableFuture 都完成時,該未來才會完成。

AnyOf(CompletableFuture[])

回傳一個新的 CompletableFuture,當任一 CompletableFuture 完成時,該未來會完成,結果相同。

ApplyToEither(ICompletionStage, IFunction)

回傳一個新的 CompletionStage,當該階段或另一個給定階段正常完成時,執行時會以相應結果作為所提供函式的參數。

ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor)

回傳一個新的完備階段,當該階段或另一個給定階段正常完成時,會使用所提供的執行器執行,並以相應結果作為所提供函式的參數。

ApplyToEitherAsync(ICompletionStage, IFunction)

回傳一個新的 CompletionStage,當該階段或其他指定階段正常完成時,會使用該階段預設的非同步執行功能執行,並將相應結果作為所提供函式的參數。

Cancel(Boolean)

如果還沒完成,請用 完成這個 CompletableFuture 。CancellationException

Clone()

建立並回傳此物件的副本。

(繼承來源 Object)
Complete(Object)

若尚未完成,則將相關方法回傳 #get() 的值設為給定值。

CompleteAsync(ISupplier, IExecutor)

以使用該執行器從非同步任務呼叫的 Supplier 函式結果,完成此 CompletableFuture。

CompleteAsync(ISupplier)

以使用預設執行器從非同步任務呼叫的 Supplier 函式結果,完成此 CompletableFuture。

CompletedFuture(Object)

回傳一個已完成且已設定值的新CompletableFuture。

CompletedStage(Object)

回傳一個已完成且已完成且僅支援介面 CompletionStage中方法的新完結階段。

CompleteExceptionally(Throwable)

若尚未完成,會導致 #get() 呼叫及相關方法拋出該異常。

CompleteOnTimeout(Object, Int64, TimeUnit)

若未在逾時前完成,則以指定值完成此 CompletableFuture。

Construct(JniObjectReference, JniObjectReferenceOptions)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
Copy()

回傳一個新的 CompletableFuture,該 CompletableFuture 正常完成時的值與該 CompletableFuture 正常完成時相同。

DefaultExecutor()

回傳用於非同步方法的預設執行器,若不指定執行器。

DelayedExecutor(Int64, TimeUnit, IExecutor)

回傳一個新的執行者,該執行者在指定延遲(或非正延遲時不延遲)後,向給定的基底執行者提交任務。

DelayedExecutor(Int64, TimeUnit)

回傳一個新的執行者,該執行者在指定延遲後(或若非正延遲則不延遲)提交給預設執行者。

Dispose()

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
Dispose(Boolean)

釋放該 Java 節點所持有的資源。

(繼承來源 Object)
DisposeUnlessReferenced()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
Equals(Object)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
Equals(Object)

表示是否有其他物體「等同」於此物。

(繼承來源 Object)
Exceptionally(IFunction)

回傳一個新的 CompletableFuture,當 CompletableFuture 完成時完成,且該例外函式的結果會觸發該 CompletableFuture 的完備;否則,如果這個 CompletableFuture 正常完成,則回傳的 CompletableFuture 也會以相同值正常完成。

ExceptionallyAsync(IFunction, IExecutor)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ExceptionallyAsync(IFunction)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ExceptionallyCompose(IFunction)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ExceptionallyComposeAsync(IFunction, IExecutor)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ExceptionallyComposeAsync(IFunction)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

ExceptionNow()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

FailedFuture(Throwable)

回傳一個已以異常完成且已完成的新 CompletableFuture。

FailedStage(Throwable)

回傳一個新的完結階段,該階段已以異常完成,且僅支援介面 CompletionStage中該方法。

Get()

必要時等待此未來完成,然後返回結果。

Get(Int64, TimeUnit)

必要時等待該未來完成最多指定時間,然後若有結果則回傳。

GetHashCode()

回傳物件的雜湊碼值。

(繼承來源 Object)
GetNow(Object)

完成後回傳結果值(或拋出遇到的例外),否則回傳給定的值IfAbsent。

Handle(IBiFunction)

回傳一個新的 CompletionStage,當該階段正常或例外完成時,會以該階段的結果與例外作為所提供函式的參數執行。

HandleAsync(IBiFunction, IExecutor)

回傳一個新的 CompletionStage,當該階段正常或異常完成時,會使用所提供的執行器執行,並將該階段的結果與例外作為所提供函式的參數。

HandleAsync(IBiFunction)

回傳一個新的 CompletionStage,當該階段正常或異常完成時,會使用該階段預設的非同步執行設施執行,並將該階段的結果與例外作為所提供函式的參數。

JavaFinalize()
已淘汰.

當垃圾回收判定該物件不再有相關參考時,由垃圾回收器呼叫。

(繼承來源 Object)
Join()

完成時回傳結果值,若完成異常則拋出(未被勾選的)例外。

MinimalCompletionStage()

回傳一個新的 CompletionStage,當 正常完成時,該階段的值與 CompletableFuture 相同,且無法獨立完成或以介面方法未定義 CompletionStage的方式使用。

NewIncompleteFuture()

回傳一個新的未完成 CompletableFuture,該類型為 CompletionStage 方法要回傳的類型。

Notify()

喚醒一個正在該物件監視器上等待的執行緒。

(繼承來源 Object)
NotifyAll()

喚醒所有等待該物件監視器的執行緒。

(繼承來源 Object)
ObtrudeException(Throwable)

強制使後續的方法 #get() 及相關方法呼叫拋出該異常,無論是否已完成。

ObtrudeValue(Object)

強制設定或重置方法及相關方法後續回傳 #get() 的值,無論是否已完成。

OrTimeout(Int64, TimeUnit)

Exceptionably 會用 A 完成 CompletableFuture TimeoutException ,如果在給定的超時前未完成。

ResultNow()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

RunAfterBoth(ICompletionStage, IRunnable)

回傳一個新的完成階段,當此階段與另一個給定階段都正常完成時,執行該動作。

RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor)

回傳一個新的完成階段,當此階段與另一個指定階段皆正常完成時,會使用所提供的執行器執行該動作。

RunAfterBothAsync(ICompletionStage, IRunnable)

回傳一個新的完成階段,當此階段與另一個指定階段皆正常完成時,該階段會使用該階段預設的非同步執行機制執行該動作。

RunAfterEither(ICompletionStage, IRunnable)

回傳一個新的完成階段,當該階段或其他指定階段正常完成時,該階段執行該動作。

RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor)

回傳一個新的完備階段,當該階段或另一個階段正常完成時,該階段會使用所提供的執行者執行該動作。

RunAfterEitherAsync(ICompletionStage, IRunnable)

回傳一個新的完成階段,當該階段或另一個階段正常完成時,會使用該階段預設的非同步執行功能執行該動作。

RunAsync(IRunnable, IExecutor)

回傳一個新的 CompletableFuture,該任務在執行者執行後非同步完成。

RunAsync(IRunnable)

回傳一個新的 CompletableFuture,該任務在執行該動作後,由任務在 中 ForkJoinPool#commonPool() 非同步完成。

SetHandle(IntPtr, JniHandleOwnership)

設定 Handle 屬性。

(繼承來源 Object)
SetPeerReference(JniObjectReference, JniObjectReferenceOptions)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
State()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

SupplyAsync(ISupplier, IExecutor)

回傳一個新的 CompletableFuture,該任務由在指定執行者中執行的任務非同步完成,該任務的值與呼叫給定供應商所得。

SupplyAsync(ISupplier)

回傳一個新的 CompletableFuture,該任務由在 中 ForkJoinPool#commonPool() 執行的任務非同步完成,該任務的值與呼叫給定供應商所得的值相同。

ThenAccept(IConsumer)

回傳一個新的 CompletionStage,當該階段正常完成時,會以該階段的結果作為所提供動作的參數執行。

ThenAcceptAsync(IConsumer, IExecutor)

回傳一個新的 CompletionStage,當此階段正常完成時,會使用所提供的執行者執行,該階段的結果作為所提供動作的參數。

ThenAcceptAsync(IConsumer)

回傳一個新的 CompletionStage,當該階段正常完成時,會使用該階段預設的非同步執行機制執行,該階段的結果作為所提供動作的參數。

ThenAcceptBoth(ICompletionStage, IBiConsumer)

回傳一個新的 CompletionStage,當此階段與另一個指定階段皆正常完成時,會以兩個結果作為所提供動作的參數執行。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor)

回傳一個新的 CompletionStage,當此階段與另一個給定階段皆正常完成時,會使用所提供的執行者執行,並將這兩個結果作為所提供動作的參數。

ThenAcceptBothAsync(ICompletionStage, IBiConsumer)

回傳一個新的 CompletionStage,當此階段與另一個指定階段皆正常完成時,會使用該階段預設的非同步執行設施執行,並將兩個結果作為所提供動作的參數。

ThenApply(IFunction)

回傳一個新的 CompletionStage,當該階段正常完成時,會以該階段的結果作為所提供函式的參數執行。

ThenApplyAsync(IFunction, IExecutor)

回傳一個新的 CompletionStage,當該階段正常完成時,會使用所提供的執行器執行,該階段的結果作為所提供函式的參數。

ThenApplyAsync(IFunction)

回傳一個新的 CompletionStage,當該階段正常完成時,會使用該階段預設的非同步執行機制執行,並以該階段的結果作為所提供函式的參數。

ThenCombine(ICompletionStage, IBiFunction)

回傳一個新的 CompletionStage,當此階段與另一個給定階段皆正常完成時,會以兩個結果作為所提供函式的參數執行。

ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor)

回傳一個新的 CompletionStage,當此階段與另一個給定階段皆正常完成時,會使用所提供的執行器執行,並將這兩個結果作為所提供函式的參數。

ThenCombineAsync(ICompletionStage, IBiFunction)

回傳一個新的 CompletionStage,當此階段與另一個指定階段皆正常完成時,會使用該階段預設的非同步執行設施執行,並將兩個結果作為所提供函式的參數。

ThenCompose(IFunction)

回傳一個新的 CompletionStage,該 CompletionStage 已完成,值與該函式回傳的 Completion Stage 相同。

ThenComposeAsync(IFunction, IExecutor)

回傳一個新的 CompletionStage,該完成值與該函式回傳的 CompletionStage 相同,並由所提供的執行者執行。

ThenComposeAsync(IFunction)

回傳一個新的 CompletionStage,該階段的完成值與該函式回傳的 CompletionStage 相同,並使用該階段預設的非同步執行設施執行。

ThenRun(IRunnable)

回傳一個新的 CompletionStage,當該階段正常完成時,該階段會執行該動作。

ThenRunAsync(IRunnable, IExecutor)

回傳一個新的完成階段,當該階段正常完成時,會使用所提供的執行者執行該動作。

ThenRunAsync(IRunnable)

回傳一個新的 CompletionStage,當該階段正常完成時,會使用該階段預設的非同步執行機制執行該動作。

ToArray<T>()

從這個 Java 陣列包裝器建立一個受管理陣列。

(繼承來源 Object)
ToCompletableFuture()

回傳此 CompletableFuture。

ToString()

回傳物件的字串表示。

(繼承來源 Object)
UnregisterFromRuntime()

將此 Java 節點從互通執行時中取消註冊。

(繼承來源 Object)
Wait()

導致目前執行緒等待被喚醒,通常是透過 <em>通知</><em 或 em>中斷</em> 來喚醒。

(繼承來源 Object)
Wait(Int64, Int32)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
Wait(Int64)

會讓目前執行緒等待喚醒,通常是透過 <em>通知</><em 或 em>中斷</em>,或是經過一定的真實時間。

(繼承來源 Object)
WhenComplete(IBiConsumer)

回傳一個新的 CompletionStage,結果或例外與此階段相同,當該階段完成時執行該動作。

WhenCompleteAsync(IBiConsumer, IExecutor)

回傳一個新的 CompletionStage,結果或例外與此階段相同,當該階段完成時,該階段會使用提供的執行者執行該動作。

WhenCompleteAsync(IBiConsumer)

回傳一個新的 CompletionStage,結果或例外與此階段相同,並在此階段完成時使用該階段預設的非同步執行機制執行該動作。

明確介面實作

名稱 Description
IJavaPeerable.Disposed()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.Finalized()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.JniObjectReferenceControlBlock

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.SetJniIdentityHashCode(Int32)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.SetPeerReference(JniObjectReference)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

(繼承來源 JavaObject)
IJavaPeerable.UnregisterFromRuntime()

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

擴充方法

名稱 Description
GetAsync(IFuture, Int64, TimeUnit)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

GetAsync(IFuture)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

GetJniTypeName(IJavaPeerable)

取得實例 self類型的 JNI 名稱。

JavaAs<TResult>(IJavaPeerable)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

JavaCast<TResult>(IJavaObject)

執行 Android 執行時檢查型別轉換。

JavaCast<TResult>(IJavaObject)

Future A 可明確完成(設定其值與狀態),並可作為CompletionStage支援後續函式與動作的 ,並在完成時觸發。

TryJavaCast<TResult>(IJavaPeerable, TResult)

試著強制self輸入 TResult,檢查 強制在 Java 端是否有效。

適用於