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#hasNext hasNext образом, его методы java.util.Iterator#next next могут вызывать ServiceConfigurationError исключение, если файл конфигурации поставщика нарушает указанный формат, или если он называет класс поставщика, который не может быть найден и создан, или если результат создания экземпляра класса не может быть назначен типу службы, или если какой-либо другой вид исключения или ошибки возникает, так как следующий поставщик находится и создается экземпляр. Чтобы написать надежный код, необходимо перехватывать ServiceConfigurationError только при использовании итератора службы.
Если такая ошибка возникает, последующие вызовы итератора будут выполнять лучшие усилия для поиска и создания экземпляра следующего доступного поставщика, но в целом такое восстановление не может быть гарантировано.
<blockquote style="font-size: small; высота линии: 1.2"span style="><padding-right: 1em; font-weight: bold">Design Note</span> Throwing a error в этих случаях может показаться экстремальным. Обоснованием этого поведения является то, что файл конфигурации с неправильно сформированным поставщиком, например файл неправильно сформированного класса, указывает на серьезную проблему с способом настройки или использования виртуальной машины Java. Так как это предпочтительнее, чтобы вызвать ошибку, а не попытаться восстановить или, еще хуже, завершиться автоматически.</blockquote>
Итератор, возвращаемый этим методом, не поддерживает удаление. Вызов метода java.util.Iterator#remove() remove приведет UnsupportedOperationException к возникновению ошибки.
Java документации по java.util.ServiceLoader.iterator().
Части этой страницы — это изменения на основе работы, созданной и общей Project и используемых в соответствии с условиями, описанными в разделе "".