ServiceLoader.Iterator Método

Definición

Carga de forma diferir los proveedores disponibles del servicio de este cargador.

[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

Devoluciones

Iterador que carga de forma diferir los proveedores para el servicio de este cargador

Implementaciones

Atributos

Comentarios

Carga de forma diferir los proveedores disponibles del servicio de este cargador.

El iterador devuelto por este método produce primero todos los elementos de la caché del proveedor, en orden de creación de instancias. A continuación, carga y crea instancias de los proveedores restantes, agregando cada uno a la memoria caché a su vez.

Para lograr la dilación, el trabajo real de analizar los archivos de configuración del proveedor disponibles y crear instancias de los proveedores debe realizarse mediante el propio iterador. Por lo tanto, sus java.util.Iterator#hasNext hasNext métodos y java.util.Iterator#next next pueden producir un ServiceConfigurationError si un archivo de configuración de proveedor infringe el formato especificado, o si asigna un nombre a una clase de proveedor que no se encuentra y crea una instancia, o si el resultado de crear una instancia de la clase no se puede asignar al tipo de servicio, o si se produce cualquier otro tipo de excepción o error cuando se encuentra el siguiente proveedor y se crea una instancia. Para escribir código sólido, solo es necesario detectar ServiceConfigurationError al usar un iterador de servicio.

Si se produce este error, las invocaciones posteriores del iterador harán un mejor esfuerzo para localizar y crear instancias del siguiente proveedor disponible, pero en general no se puede garantizar dicha recuperación.

<blockquote style="font-size: más pequeño; alto de línea: 1.2"><span style="padding-right: 1em; font-weight: bold">Design Note</span> Throwing an error in these cases may parecen extremos. La justificación de este comportamiento es que un archivo de configuración de proveedor con formato incorrecto, como un archivo de clase con formato incorrecto, indica un problema grave con la forma en que la máquina virtual de Java está configurada o se está usando. Por lo tanto, es preferible producir un error en lugar de intentar recuperarse o, incluso peor, producir un error en modo silencioso.</blockquote>

El iterador devuelto por este método no admite la eliminación. La invocación de su java.util.Iterator#remove() remove método hará que se produzca una UnsupportedOperationException excepción .

Documentación de Java para java.util.ServiceLoader.iterator().

Las partes de esta página son modificaciones basadas en el trabajo creado y compartido por el proyecto de código abierto de Android y se usan según los términos descritos en la licencia de atribución de Creative Commons 2.5.

Se aplica a