ICompletionStage Antarmuka
Definisi
Penting
Beberapa informasi terkait produk prarilis yang dapat diubah secara signifikan sebelum dirilis. Microsoft tidak memberikan jaminan, tersirat maupun tersurat, sehubungan dengan informasi yang diberikan di sini.
Tahap komputasi yang mungkin asinkron, yang melakukan tindakan atau menghitung nilai ketika CompletionStage lain selesai.
[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
- Turunan
- Atribut
- Penerapan
Keterangan
Tahap komputasi yang mungkin asinkron, yang melakukan tindakan atau menghitung nilai ketika CompletionStage lain selesai. Tahap selesai setelah penghentian komputasinya, tetapi ini pada gilirannya dapat memicu tahap dependen lainnya. Fungsionalitas yang ditentukan dalam antarmuka ini hanya mengambil beberapa bentuk dasar, yang memperluas ke serangkaian metode yang lebih besar untuk menangkap berbagai gaya penggunaan:
<ul>
<li Komputasi>yang dilakukan oleh tahap dapat dinyatakan sebagai Fungsi, Konsumen, atau Dapat Dijalankan (menggunakan metode dengan nama termasuk <em>apply</em>, <em>accept</em>, atau <em>run</em>, masing-masing) tergantung pada apakah memerlukan argumen dan/atau menghasilkan hasil. Contohnya:
{@code
stage.thenApply(x -> square(x))
.thenAccept(x -> System.out.print(x))
.thenRun(() -> System.out.println());}
Formulir tambahan (<em>compose</em>) memungkinkan pembangunan alur komputasi dari fungsi yang mengembalikan tahap penyelesaian.
Argumen apa pun untuk komputasi tahap adalah hasil komputasi tahap pemicu.
<Eksekusi tahap li>One dapat dipicu oleh penyelesaian satu tahap, atau kedua dari dua tahap, atau salah satu dari dua tahap. Dependensi pada satu tahap disusun menggunakan metode dengan awalan <em>lalu</em>. Mereka yang dipicu oleh penyelesaian em keduanya dari dua tahap dapat <em>menggabungkan< / em> hasil atau efek mereka, menggunakan metode bernama yang sesuai.><>< Yang dipicu oleh <em>salah satu< dari> dua tahap tidak memberikan jaminan tentang hasil atau efek mana yang digunakan untuk komputasi tahap dependen.
<li>Dependensi di antara tahap mengontrol pemicu komputasi, tetapi tidak menjamin urutan tertentu. Selain itu, eksekusi komputasi tahap baru dapat diatur dengan salah satu dari tiga cara: eksekusi default, eksekusi asinkron default (menggunakan metode dengan akhiran <em>asinkron</em> yang menggunakan fasilitas eksekusi asinkron default tahap), atau kustom (melalui yang disediakan Executor). Properti eksekusi mode default dan asinkron ditentukan oleh implementasi CompletionStage, bukan antarmuka ini. Metode dengan argumen Eksekutor eksplisit mungkin memiliki properti eksekusi arbitrer, dan bahkan mungkin tidak mendukung eksekusi bersamaan, tetapi diatur untuk diproses dengan cara yang mengakomodasi asinkron.
<bentuk metode li>Dua (#handle handle dan #whenComplete whenComplete) mendukung komputasi tanpa syarat apakah tahap pemicu selesai secara normal atau luar biasa. Metode #exceptionally exceptionally mendukung komputasi hanya ketika tahap pemicu selesai dengan luar biasa, menghitung hasil penggantian, mirip dengan kata kunci java catch . Dalam semua kasus lain, jika komputasi tahap berakhir secara tiba-tiba dengan pengecualian atau kesalahan (tidak dicentang), maka semua tahap dependen yang memerlukan penyelesaiannya juga selesai, dengan CompletionException memegang pengecualian sebagai penyebabnya. Jika tahap tergantung pada <em>keduanya< dari> dua tahap, dan keduanya selesai secara luar biasa, maka CompletionException dapat sesuai dengan salah satu pengecualian ini. Jika satu tahap tergantung pada <em>salah satu< dari> dua lainnya, dan hanya satu dari mereka selesai dengan luar biasa, tidak ada jaminan yang dibuat tentang apakah tahap dependen selesai secara normal atau luar biasa. Dalam kasus metode whenComplete, ketika tindakan yang disediakan itu sendiri mengalami pengecualian, maka tahap selesai dengan pengecualian ini kecuali tahap sumber juga selesai dengan luar biasa, dalam hal ini penyelesaian luar biasa dari tahap sumber diberikan preferensi dan disebarkan ke tahap dependen.
</Ul>
Semua metode mematuhi spesifikasi pemicu, eksekusi, dan penyelesaian luar biasa di atas (yang tidak diulang dalam spesifikasi metode individual). Selain itu, sementara argumen yang digunakan untuk meneruskan hasil penyelesaian (yaitu, untuk parameter jenis T) untuk metode yang menerimanya mungkin null, meneruskan nilai null untuk parameter lain akan mengakibatkan NullPointerException dilemparkan.
Bentuk metode #handle handle adalah cara paling umum untuk membuat tahap kelanjutan, melakukan komputasi tanpa syarat yang diberikan hasil dan pengecualian (jika ada) dari CompletionStage yang memicu, dan menghitung hasil arbitrer. Metodenya #whenComplete whenComplete serupa, tetapi mempertahankan hasil tahap pemicu alih-alih menghitung yang baru. Karena hasil normal tahap mungkin null, kedua metode harus memiliki komputasi yang terstruktur dengan demikian:
{@code (result, exception) -> {
if (exception == null) {
// triggering stage completed normally
} else {
// triggering stage completed exceptionally
}
}}
Antarmuka ini tidak menentukan metode untuk membuat awal, menyelesaikan secara paksa status atau hasil penyelesaian pemeriksaan secara normal atau luar biasa, atau menunggu penyelesaian tahap. Implementasi CompletionStage dapat memberikan sarana untuk mencapai efek tersebut, sebagaimana mewajarinya. Metode #toCompletableFuture memungkinkan interoperabilitas di antara berbagai implementasi antarmuka ini dengan menyediakan jenis konversi umum.
Ditambahkan dalam 1.8.
Java dokumentasi untuk java.util.concurrent.CompletionStage.
Bagian dari halaman ini adalah modifikasi berdasarkan pekerjaan yang dibuat dan dibagikan oleh Android Open Source Project dan digunakan sesuai dengan istilah yang dijelaskan dalam Lisensi Creative Commons 2.5 Lisensi Atribusi.
Properti
| Nama | Deskripsi |
|---|---|
| Handle |
Mendapatkan nilai JNI dari objek Android yang mendasar. (Diperoleh dari IJavaObject) |
| JniIdentityHashCode |
Mengembalikan nilai |
| JniManagedPeerState |
Status serekan terkelola. (Diperoleh dari IJavaPeerable) |
| JniPeerMembers |
Akses anggota dan dukungan pemanggilan. (Diperoleh dari IJavaPeerable) |
| PeerReference |
Mengembalikan instans objek Java yang dibungkusJniObjectReference. (Diperoleh dari IJavaPeerable) |
Metode
| Nama | Deskripsi |
|---|---|
| AcceptEither(ICompletionStage, IConsumer) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan dengan hasil yang sesuai sebagai argumen ke tindakan yang disediakan. |
| AcceptEitherAsync(ICompletionStage, IConsumer, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan menggunakan eksekutor yang disediakan, dengan hasil yang sesuai sebagai argumen ke tindakan yang disediakan. |
| AcceptEitherAsync(ICompletionStage, IConsumer) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan hasil yang sesuai sebagai argumen untuk tindakan yang disediakan. |
| ApplyToEither(ICompletionStage, IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan dengan hasil yang sesuai sebagai argumen ke fungsi yang disediakan. |
| ApplyToEitherAsync(ICompletionStage, IFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan menggunakan eksekutor yang disediakan, dengan hasil yang sesuai sebagai argumen ke fungsi yang disediakan. |
| ApplyToEitherAsync(ICompletionStage, IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan hasil yang sesuai sebagai argumen ke fungsi yang disediakan. |
| Disposed() |
Dipanggil ketika instans telah dibuang. (Diperoleh dari IJavaPeerable) |
| DisposeUnlessReferenced() |
Jika tidak ada referensi yang luar biasa untuk instans ini, maka panggilan |
| Exceptionally(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, dijalankan dengan pengecualian tahap ini sebagai argumen ke fungsi yang disediakan. |
| ExceptionallyAsync(IFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, dijalankan dengan pengecualian tahap ini sebagai argumen ke fungsi yang disediakan, menggunakan Pelaksana yang disediakan. |
| ExceptionallyAsync(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, dijalankan dengan pengecualian tahap ini sebagai argumen ke fungsi yang disediakan, menggunakan fasilitas eksekusi asinkron default tahap ini. |
| ExceptionallyCompose(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, disusun menggunakan hasil fungsi yang disediakan yang diterapkan ke pengecualian tahap ini. |
| ExceptionallyComposeAsync(IFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, disusun menggunakan hasil fungsi yang disediakan yang diterapkan ke pengecualian tahap ini, menggunakan Pelaksana yang disediakan. |
| ExceptionallyComposeAsync(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai dengan luar biasa, disusun menggunakan hasil fungsi yang disediakan yang diterapkan pada pengecualian tahap ini, menggunakan fasilitas eksekusi asinkron default tahap ini. |
| Finalized() |
Dipanggil ketika instans telah diselesaikan. (Diperoleh dari IJavaPeerable) |
| Handle(IBiFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai baik secara normal atau luar biasa, dijalankan dengan hasil tahap ini dan pengecualian sebagai argumen ke fungsi yang disediakan. |
| HandleAsync(IBiFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai baik secara normal atau luar biasa, dijalankan menggunakan eksekutor yang disediakan, dengan hasil tahap ini dan pengecualian sebagai argumen ke fungsi yang disediakan. |
| HandleAsync(IBiFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai baik secara normal atau luar biasa, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan hasil tahap ini dan pengecualian sebagai argumen ke fungsi yang disediakan. |
| RunAfterBoth(ICompletionStage, IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini dan yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan. |
| RunAfterBothAsync(ICompletionStage, IRunnable, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini dan yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan menggunakan eksekutor yang disediakan. |
| RunAfterBothAsync(ICompletionStage, IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini dan yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan menggunakan fasilitas eksekusi asinkron default tahap ini. |
| RunAfterEither(ICompletionStage, IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan. |
| RunAfterEitherAsync(ICompletionStage, IRunnable, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan menggunakan eksekutor yang disediakan. |
| RunAfterEitherAsync(ICompletionStage, IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini atau yang diberikan lainnya selesai secara normal, menjalankan tindakan yang diberikan menggunakan fasilitas eksekusi asinkron default tahap ini. |
| SetJniIdentityHashCode(Int32) |
Atur nilai yang dikembalikan oleh |
| SetJniManagedPeerState(JniManagedPeerStates) |
Tahap komputasi yang mungkin asinkron, yang melakukan tindakan atau menghitung nilai ketika CompletionStage lain selesai. (Diperoleh dari IJavaPeerable) |
| SetPeerReference(JniObjectReference) |
Atur nilai yang dikembalikan oleh |
| ThenAccept(IConsumer) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan dengan hasil tahap ini sebagai argumen untuk tindakan yang disediakan. |
| ThenAcceptAsync(IConsumer, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan menggunakan Eksekutor yang disediakan, dengan hasil tahap ini sebagai argumen ke tindakan yang disediakan. |
| ThenAcceptAsync(IConsumer) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan hasil tahap ini sebagai argumen ke tindakan yang disediakan. |
| ThenAcceptBoth(ICompletionStage, IBiConsumer) |
Mengembalikan CompletionStage baru yang, ketika ini dan tahap lain yang diberikan keduanya selesai secara normal, dijalankan dengan dua hasil sebagai argumen ke tindakan yang disediakan. |
| ThenAcceptBothAsync(ICompletionStage, IBiConsumer, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika ini dan tahap lain yang diberikan keduanya selesai secara normal, dijalankan menggunakan eksekutor yang disediakan, dengan dua hasil sebagai argumen untuk tindakan yang disediakan. |
| ThenAcceptBothAsync(ICompletionStage, IBiConsumer) |
Mengembalikan CompletionStage baru yang, ketika ini dan tahap lain yang diberikan keduanya selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan dua hasil sebagai argumen untuk tindakan yang disediakan. |
| ThenApply(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan dengan hasil tahap ini sebagai argumen ke fungsi yang disediakan. |
| ThenApplyAsync(IFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan menggunakan Pelaksana yang disediakan, dengan hasil tahap ini sebagai argumen ke fungsi yang disediakan. |
| ThenApplyAsync(IFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan hasil tahap ini sebagai argumen ke fungsi yang disediakan. |
| ThenCombine(ICompletionStage, IBiFunction) |
Mengembalikan CompletionStage baru yang, ketika tahap ini dan yang diberikan lainnya selesai secara normal, dijalankan dengan dua hasil sebagai argumen ke fungsi yang disediakan. |
| ThenCombineAsync(ICompletionStage, IBiFunction, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika ini dan tahap lain yang diberikan keduanya selesai secara normal, dijalankan menggunakan eksekutor yang disediakan, dengan dua hasil sebagai argumen ke fungsi yang disediakan. |
| ThenCombineAsync(ICompletionStage, IBiFunction) |
Mengembalikan CompletionStage baru yang, ketika ini dan tahap lain yang diberikan keduanya selesai secara normal, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini, dengan dua hasil sebagai argumen ke fungsi yang disediakan. |
| ThenCompose(IFunction) |
Mengembalikan CompletionStage baru yang diselesaikan dengan nilai yang sama dengan CompletionStage yang dikembalikan oleh fungsi yang diberikan. |
| ThenComposeAsync(IFunction, IExecutor) |
Mengembalikan CompletionStage baru yang diselesaikan dengan nilai yang sama dengan CompletionStage yang dikembalikan oleh fungsi yang diberikan, dijalankan menggunakan Executor yang disediakan. |
| ThenComposeAsync(IFunction) |
Mengembalikan CompletionStage baru yang diselesaikan dengan nilai yang sama dengan CompletionStage yang dikembalikan oleh fungsi yang diberikan, dijalankan menggunakan fasilitas eksekusi asinkron default tahap ini. |
| ThenRun(IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, menjalankan tindakan yang diberikan. |
| ThenRunAsync(IRunnable, IExecutor) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, menjalankan tindakan yang diberikan menggunakan Pelaksana yang disediakan. |
| ThenRunAsync(IRunnable) |
Mengembalikan CompletionStage baru yang, ketika tahap ini selesai secara normal, menjalankan tindakan yang diberikan menggunakan fasilitas eksekusi asinkron default tahap ini. |
| ToCompletableFuture() |
Mengembalikan properti penyelesaian yang |
| UnregisterFromRuntime() |
Batalkan pendaftaran instans ini sehingga runtime tidak akan mengembalikannya dari pemanggilan di masa mendatang Java.Interop.JniRuntime+JniValueManager.PeekValue . (Diperoleh dari IJavaPeerable) |
| WhenComplete(IBiConsumer) |
Mengembalikan CompletionStage baru dengan hasil atau pengecualian yang sama dengan tahap ini, yang menjalankan tindakan yang diberikan saat tahap ini selesai. |
| WhenCompleteAsync(IBiConsumer, IExecutor) |
Mengembalikan CompletionStage baru dengan hasil atau pengecualian yang sama dengan tahap ini, yang menjalankan tindakan yang diberikan menggunakan Pelaksana yang disediakan saat tahap ini selesai. |
| WhenCompleteAsync(IBiConsumer) |
Mengembalikan CompletionStage baru dengan hasil atau pengecualian yang sama dengan tahap ini, yang menjalankan tindakan yang diberikan menggunakan fasilitas eksekusi asinkron default tahap ini ketika tahap ini selesai. |
Metode Ekstensi
| Nama | Deskripsi |
|---|---|
| GetJniTypeName(IJavaPeerable) |
Mendapatkan nama JNI dari jenis instans |
| JavaAs<TResult>(IJavaPeerable) |
Cobalah untuk memaksa |
| JavaCast<TResult>(IJavaObject) |
Melakukan konversi jenis yang diperiksa runtime Android. |
| JavaCast<TResult>(IJavaObject) |
Tahap komputasi yang mungkin asinkron, yang melakukan tindakan atau menghitung nilai ketika CompletionStage lain selesai. |
| TryJavaCast<TResult>(IJavaPeerable, TResult) |
Cobalah untuk memaksa |