ServiceLoader.Iterator Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Lazily charge les fournisseurs disponibles du service de ce chargeur.
[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
Retours
Itérateur qui charge de manière différée les fournisseurs pour le service de ce chargeur
Implémente
- Attributs
Remarques
Lazily charge les fournisseurs disponibles du service de ce chargeur.
L’itérateur retourné par cette méthode génère d’abord tous les éléments du cache du fournisseur, dans l’ordre d’instanciation. Il charge et instancie ensuite les fournisseurs restants, en ajoutant chacun au cache à son tour.
Pour obtenir la paresse, le travail réel d’analyse des fichiers de configuration de fournisseur disponibles et l’instanciation des fournisseurs doivent être effectués par l’itérateur lui-même. Ses java.util.Iterator#hasNext hasNext méthodes peuvent par conséquent lever une ServiceConfigurationError exception si un fichier de configuration fournisseur enfreint le format spécifié, ou s’il nomme une classe de fournisseur introuvable et instanciée, ou si le résultat de l’instanciation de la classe n’est pas assignable au type de service, ou si un autre type d’exception ou d’erreur est levée à mesure que le fournisseur suivant est localisé et instanciéjava.util.Iterator#next next. Pour écrire du code robuste, il est uniquement nécessaire d’intercepter ServiceConfigurationError lors de l’utilisation d’un itérateur de service.
Si une telle erreur est levée, les appels suivants de l’itérateur feront le meilleur effort pour localiser et instancier le fournisseur disponible suivant, mais en général, cette récupération ne peut pas être garantie.
<blockquote style="font-size : plus petit ; hauteur de ligne : 1,2"><span style="padding-right : 1em ; police-weight : bold">Design Note</span> Throwing an error in these cases may semble extrême. La justification de ce comportement est qu’un fichier de configuration fournisseur-configuration mal formé, comme un fichier de classe mal formé, indique un problème sérieux avec la façon dont la machine virtuelle Java est configurée ou est utilisée. Par conséquent, il est préférable de lever une erreur plutôt que d’essayer de récupérer ou, pire encore, d’échouer silencieusement.</blockquote>
L’itérateur retourné par cette méthode ne prend pas en charge la suppression. L’appel de sa java.util.Iterator#remove() remove méthode entraîne la levée d’une UnsupportedOperationException exception.
Java documentation pour java.util.ServiceLoader.iterator().
Les parties de cette page sont des modifications basées sur le travail créé et partagé par Android Open Source et utilisées en fonction des termes décrits dans la Creative Commons 2.5 Attribution License.