ServiceLoader.Iterator Metode

Definisi

Lazily memuat penyedia yang tersedia dari layanan pemuat ini.

[Android.Runtime.Register("iterator", "()Ljava/util/Iterator;", "")]
public Java.Util.IIterator? Iterator();
[<Android.Runtime.Register("iterator", "()Ljava/util/Iterator;", "")>]
abstract member Iterator : unit -> Java.Util.IIterator
override this.Iterator : unit -> Java.Util.IIterator

Mengembalikan

Iterator yang dengan malas memuat penyedia untuk layanan pemuat ini

Penerapan

Atribut

Keterangan

Lazily memuat penyedia yang tersedia dari layanan pemuat ini.

Iterator yang dikembalikan oleh metode ini pertama-tama menghasilkan semua elemen cache penyedia, dalam urutan instansiasi. Kemudian dengan malas memuat dan membuat instans penyedia yang tersisa, menambahkan masing-masing ke cache secara bergantian.

Untuk mencapai kemalasan, pekerjaan aktual penguraian file konfigurasi penyedia yang tersedia dan penyedia instans harus dilakukan oleh iterator itu sendiri. Oleh karena itu java.util.Iterator#hasNext hasNext , metode dannya java.util.Iterator#next next dapat melemparkan ServiceConfigurationError jika file konfigurasi penyedia melanggar format yang ditentukan, atau jika itu menamai kelas penyedia yang tidak dapat ditemukan dan dibuat, atau jika hasil dari membuat instans kelas tidak dapat ditetapkan ke jenis layanan, atau jika ada jenis pengecualian atau kesalahan lain yang dilemparkan karena penyedia berikutnya berada dan dibuat. Untuk menulis kode yang kuat, Anda hanya perlu menangkap ServiceConfigurationError saat menggunakan iterator layanan.

Jika kesalahan seperti itu dilemparkan maka pemanggilan iterator berikutnya akan melakukan upaya terbaik untuk menemukan dan membuat instans penyedia berikutnya yang tersedia, tetapi secara umum pemulihan tersebut tidak dapat dijamin.

<blockquote style="font-size: smaller; tinggi garis: 1,2"><span style="padding-right: 1em; font-weight: bold">Design Note</span> Melemparkan kesalahan dalam kasus ini mungkin tampak ekstrem. Alasan untuk perilaku ini adalah bahwa file konfigurasi penyedia cacat, seperti file kelas cacat, menunjukkan masalah serius dengan cara komputer virtual Java dikonfigurasi atau sedang digunakan. Dengan demikian lebih baik untuk melemparkan kesalahan daripada mencoba memulihkan atau, bahkan lebih buruk, gagal diam-diam.</blockquote>

Iterator yang dikembalikan oleh metode ini tidak mendukung penghapusan. Memanggil metodenya java.util.Iterator#remove() remove akan menyebabkan dilemparkan UnsupportedOperationException .

Java dokumentasi untuk java.util.ServiceLoader.iterator().

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.

Berlaku untuk