Spec-Zone.ru › OpenJDK 27

Класс InetAddressResolverProvider

java.lang.Object
java.net.spi.InetAddressResolverProvider
public abstract class InetAddressResolverProvider extends Object
Класс поставщика служб для резолверов InetAddress.

Поставщик резолвера — это фабрика пользовательских реализаций резолверов InetAddress. Резолвер определяет операции поиска (разрешения) имён хостов и IP-адресов.

Поставщик резолвера — это конкретный подкласс данного класса с конструктором без аргументов, реализующий указанные ниже абстрактные методы.

При каждом запуске виртуальной машины Java поддерживается единственный общесистемный экземпляр резолвера, используемый InetAddress. Он задаётся после полной инициализации виртуальной машины и при первом вызове метода класса InetAddress, инициирующем операцию поиска.

Поставщик резолвера обнаруживается и загружается классом InetAddress для создания общесистемного резолвера следующим образом:

  1. Механизм ServiceLoader используется для поиска InetAddressResolverProvider с помощью системного загрузчика классов. Порядок обнаружения поставщиков определяется реализацией. Первый найденный поставщик будет использован для создания экземпляра InetAddressResolver путём вызова метода get(InetAddressResolverProvider.Configuration). Возвращённый объект InetAddressResolver будет назначен общесистемным резолвером.
  2. Если на предыдущем шаге не удалось найти поставщик резолвера, общесистемным резолвером будет назначен встроенный резолвер.

Если при создании пользовательского резолвера из поставщика, обнаруженного на шаге 1, возникает ошибка или исключение, общесистемный резолвер не будет назначен, а ошибка или исключение будет передано вызывающему коду метода, инициировавшего операцию поиска. В противном случае все операции поиска будут выполняться с использованием общесистемного резолвера.

Примечание по реализации:
InetAddress будет использовать встроенный резолвер для всех операций поиска, которые могут выполняться до полной загрузки виртуальной машины.
Начиная с версии:
18

Краткое описание вложенных классов

Модификатор и тип Класс Описание
static interface  InetAddressResolverProvider.Configuration
Объект Configuration передаётся методу get(Configuration) при назначении общесистемного резолвера.

Краткое описание конструкторов

InetAddressResolverProvider()
Модификатор Конструктор Описание
protected
Создаёт новый экземпляр InetAddressResolverProvider.

Краткое описание методов

Модификатор и тип Метод Описание
abstract InetAddressResolver get(InetAddressResolverProvider.Configuration configuration)
Инициализирует и возвращает InetAddressResolver, предоставленный этим поставщиком.
abstract String name()
Возвращает имя этого поставщика или null, если имя не задано.

Методы, объявленные в классе Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Модификатор и тип Метод Описание
protected Object clone()
Создаёт и возвращает копию этого объекта.
boolean equals(Object obj)
Указывает, является ли другой объект «равным» этому объекту.
protected void finalize()
Устарело, планируется удаление: этот элемент API может быть удалён в будущей версии.
Финализация объявлена устаревшей и может быть удалена в одном из следующих выпусков.
final Class<?> getClass()
Возвращает класс времени выполнения этого Object.
int hashCode()
Возвращает хеш-код этого объекта.
final void notify()
Пробуждает один поток, ожидающий на мониторе этого объекта.
final void notifyAll()
Пробуждает все потоки, ожидающие на мониторе этого объекта.
String toString()
Возвращает строковое представление объекта.
final void wait()
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt.
final void wait(long timeoutMillis)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени.
final void wait(long timeoutMillis, int nanos)
Заставляет текущий поток ожидать пробуждения, обычно в результате вызова метода notify или interrupt, либо истечения заданного промежутка реального времени.

Подробное описание конструкторов

InetAddressResolverProvider

protected InetAddressResolverProvider()
Создаёт новый экземпляр InetAddressResolverProvider.
Примечание по реализации:
Рекомендуется, чтобы инициализация реализации службы InetAddressResolverProvider была как можно проще, чтобы избежать возможных рисков взаимной блокировки или циклов загрузки классов при создании экземпляра поставщика службы.

Подробное описание методов

get

public abstract InetAddressResolver get(InetAddressResolverProvider.Configuration configuration)
Инициализирует и возвращает InetAddressResolver, предоставленный этим поставщиком. Этот метод вызывается классом InetAddress при установке реализации общесистемного резолвера.

Любая ошибка или исключение, выброшенные этим методом, считаются неудачной инициализацией InetAddressResolver и передаются вызывающему коду метода, инициировавшего операцию поиска.

Параметры:
configuration — экземпляр InetAddressResolverProvider.Configuration, содержащий встроенную конфигурацию платформы для разрешения адресов.
Возвращает:
резолвер, предоставленный этим поставщиком

name

public abstract String name()
Возвращает имя этого поставщика или null, если имя не задано.
Возвращает:
имя этого поставщика или null, если имя не задано

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, обзоры концепций, определения терминов, обходные решения и примеры работающего кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2026, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API