ServiceLoader.Iterator Metodo

Definizione

Carica in modo differinte i provider disponibili del servizio del caricatore.

[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

Valori restituiti

Iteratore che carica in modo differinte i provider per il servizio del caricatore

Implementazioni

Attributi

Commenti

Carica in modo differinte i provider disponibili del servizio del caricatore.

L'iteratore restituito da questo metodo restituisce prima tutti gli elementi della cache del provider, in ordine di creazione di istanze. Carica quindi in modo differire e crea un'istanza di tutti i provider rimanenti, aggiungendo ognuno alla cache a sua volta.

Per ottenere la pigrizia, il lavoro effettivo di analisi dei file di configurazione del provider disponibili e la creazione di istanze dei provider devono essere eseguiti dall'iteratore stesso. I java.util.Iterator#hasNext hasNext metodi e java.util.Iterator#next next possono pertanto generare un'eccezione ServiceConfigurationError se un file di configurazione del provider viola il formato specificato o se denomina una classe provider che non può essere trovata e creata un'istanza oppure se il risultato della creazione di un'istanza della classe non è assegnabile al tipo di servizio oppure se viene generato un altro tipo di eccezione o errore quando il provider successivo si trova e crea un'istanza. Per scrivere codice affidabile, è necessario intercettare ServiceConfigurationError solo quando si usa un iteratore del servizio.

Se viene generato un errore di questo tipo, le chiamate successive dell'iteratore faranno il massimo sforzo per individuare e creare un'istanza del provider disponibile successivo, ma in generale tale ripristino non può essere garantito.

<blockquote style="font-size: più piccolo; line-height: 1.2"><span style="padding-right: 1em; font-weight: bold">Design Note</span> Throwing an error in these cases may seem extreme. La logica di questo comportamento è che un file di configurazione del provider in formato non valido, come un file di classe in formato non valido, indica un problema grave con il modo in cui la macchina virtuale Java è configurata o viene usata. Di conseguenza, è preferibile generare un errore anziché tentare di recuperare o, ancora peggio, non riuscire in modo invisibile all'utente.</blockquote>

L'iteratore restituito da questo metodo non supporta la rimozione. Il richiamo del java.util.Iterator#remove() remove metodo causerà la creazione di un'eccezione UnsupportedOperationException .

per java.util.ServiceLoader.iterator().

Le parti di questa pagina sono modifiche basate sul lavoro creato e condiviso dalla e usati in base ai termini descritti in Creative License 2.5 Attribution License.

Si applica a