Класс InetAddressResolverProvider
public abstract class InetAddressResolverProvider extends Object
Провайдер разрешителя — это фабрика для пользовательских реализаций разрешителей адресов InetAddress. Разрешитель определяет операции для поиска (разрешения) имен хостов и IP-адресов.
Провайдер разрешителя — это конкретный подкласс этого класса, имеющий конструктор без аргументов и реализующий абстрактные методы, указанные ниже.
В данной инстанциации виртуальной машины Java поддерживается единственный системный экземпляр разрешителя, который используется классом InetAddress. Он устанавливается после полной инициализации ВМ и при вызове метода в классе InetAddress, который запускает первую операцию поиска.
Провайдер разрешителя находится и загружается классом InetAddress для создания системного разрешителя следующим образом:
- Механизм
ServiceLoaderиспользуется для поискаInetAddressResolverProviderс помощью системного загрузчика классов. Порядок поиска провайдеров — специфичен реализации. Первый найденный провайдер будет использован для инстанцирования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://download.java.net/java/early_access/jdk24/docs/api/java.base/java/net/spi/InetAddressResolverProvider.html