Класс InetAddressResolverProvider
public abstract class InetAddressResolverProvider extends Object
Поставщик резоллера — это фабрика пользовательских реализаций резолверов InetAddress. Резоллер определяет операции для поиска (разрешения) имён хостов и IP-адресов.
Поставщик резоллера — это конкретный подкласс данного класса, который имеет конструктор без аргументов и реализует указанные ниже абстрактные методы.
При каждом запуске виртуальной машины Java поддерживается единственный системный экземпляр резоллера, который используется классом InetAddress. Он устанавливается после полной инициализации виртуальной машины и при первом выполнении операции поиска, вызванном вызовом метода класса InetAddress.
Класс InetAddress находит и загружает поставщик резоллера, чтобы создать системный резоллер следующим образом:
- Для поиска
InetAddressResolverProviderс помощью системного загрузчика классов используется механизмServiceLoader. Порядок поиска поставщиков зависит от реализации. Первый найденный поставщик будет использоваться для создания экземпляраInetAddressResolverпосредством вызова методаget(InetAddressResolverProvider.Configuration). ВозвращённыйInetAddressResolverбудет установлен в качестве системного резоллера. - Если на предыдущем шаге не удалось найти поставщик резоллера, системным резоллером будет установлен встроенный резоллер.
Если создание пользовательского резоллера из поставщика, найденного на шаге 1, приводит к ошибке или исключению, системный резоллер не будет установлен, а ошибка или исключение будут переданы вызывающему коду метода, инициировавшего операцию поиска. В противном случае любая операция поиска будет выполняться с использованием системного резоллера.
- Примечание по реализации:
-
InetAddressбудет использовать встроенный резоллер для любых операций поиска, которые могут произойти до полной загрузки виртуальной машины. - С версии:
- 18
Краткое описание вложенных классов
| Модификатор и тип | Класс | Описание |
|---|---|---|
static interface |
InetAddressResolverProvider.Configuration |
Объект Configuration передаётся методу get(Configuration) при установке системного резоллера. |
Краткое описание конструкторов
| Модификатор | Конструктор | Описание |
|---|---|---|
protected |
Создаёт новый экземпляр InetAddressResolverProvider. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
abstract InetAddressResolver |
get |
Инициализирует и возвращает InetAddressResolver, предоставленный этим поставщиком. |
abstract String |
name() |
Возвращает имя этого поставщика или null, если имя не задано. |
Подробное описание конструкторов
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, если имя не задано
© 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.base/java/net/spi/InetAddressResolverProvider.html