ServiceLoader.Iterator 方法

定义

Lazily 加载此加载程序服务的可用提供程序。

[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

返回

延迟加载此加载程序服务的提供程序的迭代器

实现

属性

注解

Lazily 加载此加载程序服务的可用提供程序。

此方法返回的迭代器首先按实例化顺序生成提供程序缓存的所有元素。 然后,它会延迟加载并实例化任何剩余的提供程序,并依次将每个提供程序添加到缓存中。

若要实现懒散,必须由迭代器本身完成分析可用提供程序配置文件和实例化提供程序的实际工作。 java.util.Iterator#next next因此ServiceConfigurationError,如果java.util.Iterator#hasNext hasNext提供程序配置文件违反了指定格式,或者如果它命名了找不到和实例化的提供程序类,或者实例化该类的结果不能分配给服务类型,或者当下一个提供程序位于并实例化时引发任何其他异常或错误,则引发该方法和方法。 若要编写可靠的代码,只需在使用服务迭代器时捕获 ServiceConfigurationError

如果引发此类错误,则迭代器的后续调用将尽最大努力查找和实例化下一个可用提供程序,但通常无法保证此类恢复。

<blockquote style=“font-size: smaller;行高: 1.2“><span style=”padding-right: 1em; font-weight: bold“>Design Note</span> throwing an error in these cases may may appear extreme. 此行为的理由是,格式不正确的提供程序配置文件(如格式不正确的类文件)表示配置或正在使用Java虚拟机的方式存在严重问题。 因此,最好引发错误,而不是尝试恢复,甚至更糟的是,以无提示方式失败。</blockquote>

此方法返回的迭代器不支持删除。 调用其 java.util.Iterator#remove() remove 方法将导致 UnsupportedOperationException 引发。

Java文档java.util.ServiceLoader.iterator()

本页的某些部分是根据 创建和共享的工作进行的修改,并根据 许可证中所述的条款使用。

适用于