Spec-Zone.ru › OpenJDK 21

Интерфейс NamingEnumeration<T>

Параметры типа:
T - тип элементов, возвращаемых этим перечислением
Все суперинтерфейсы:
Enumeration<T>
public interface NamingEnumeration<T> extends Enumeration<T>
Этот интерфейс предназначен для перечисления списков, возвращаемых методами в пакетах javax.naming и javax.naming.directory. Он расширяет Enumeration, чтобы разрешить исключения, которые могут быть выброшены во время перечисления.

Когда метод, такой как list(), listBindings() или search(), возвращает NamingEnumeration, любые возникшие исключения откладываются до тех пор, пока не будут возвращены все результаты. В конце перечисления исключение выбрасывается (методом hasMore());

Например, если list() возвращает только частичный ответ, соответствующим исключением будет PartialResultException. list() сначала вернёт NamingEnumeration. Когда последний из результатов будет возвращен методом next() объекта NamingEnumeration, вызов hasMore() приведёт к выбрасыванию PartialResultException.

В другом примере, если метод search() был вызван с указанным лимитом размера 'n'. Если ответ содержит более 'n' результатов, search() сначала вернёт NamingEnumeration. Когда n-й результат будет возвращён вызовом next() на NamingEnumeration, SizeLimitExceedException будет выброшен при вызове hasMore().

Обратите внимание, что если программа использует hasMoreElements() и nextElement() для итерации по NamingEnumeration, так как эти методы не могут бросать исключения, никакого исключения не будет выброшено. Вместо этого, в предыдущем примере, после того, как n-й результат будет возвращен nextElement(), вызов hasMoreElements() вернёт false.

Также обратите внимание, что NoSuchElementException выбрасывается, если программа вызывает next() или nextElement(), когда в перечислении не осталось элементов. Программа всегда может избежать этого исключения, используя hasMore() и hasMoreElements() для проверки того, достигнут ли конец перечисления.

Если во время перечисления выбрасывается исключение, перечисление становится недоступным. Последующие вызовы любых методов этого перечисления дадут неопределенные результаты.

С момента:
1.3
См. также:
  • Context.list(javax.naming.Name)
  • Context.listBindings(javax.naming.Name)
  • DirContext.search(javax.naming.Name, javax.naming.directory.Attributes, java.lang.String[])
  • Attributes.getAll()
  • Attributes.getIDs()
  • Attribute.getAll()

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

Модификатор и тип Метод Описание
void close()
Закрывает это перечисление.
boolean hasMore()
Определяет, есть ли ещё элементы в перечислении.
T next()
Возвращает следующий элемент в перечислении.

Методы, объявленные в интерфейсе java.util.Enumeration

asIterator, hasMoreElements, nextElement

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

next

T next() throws NamingException
Возвращает следующий элемент в перечислении. Этот метод позволяет перехватывать и обрабатывать возникшие исключения именования при получении следующего элемента.

Обратите внимание, что next() также может выбросить исключение времени выполнения NoSuchElementException, чтобы указать, что вызывающий элемент пытается перечислить за пределами конца перечисления. Это отличается от NamingException, который указывает на проблему при получении следующего элемента, например, из-за ссылки или недоступности сервера и т. д.

Возвращает:
Возможный элемент в перечислении. null допустим только для перечислений, которые могут возвращать null (например, Attribute.getAll() возвращает перечисление значений атрибутов, а значение атрибута может быть null).
Выбрасывает:
NamingException - Если при попытке получить следующий элемент возникает исключение именования. Смотрите NamingException и его подклассы для возможных исключений именования.
NoSuchElementException - Если попытка получить следующий элемент производится, когда таких элементов нет.
См. также:
  • Enumeration.nextElement()

hasMore

boolean hasMore() throws NamingException
Определяет, есть ли ещё элементы в перечислении. Этот метод позволяет перехватывать и обрабатывать исключения именования, возникающие при определении наличия других элементов.
Возвращает:
true, если в перечислении есть ещё элементы; false в противном случае.
Выбрасывает:
NamingException - Если при попытке определить, есть ли ещё элемент в перечислении, возникает исключение именования. Смотрите NamingException и его подклассы для возможных исключений именования.
См. также:
  • Enumeration.hasMoreElements()

close

void close() throws NamingException
Закрывает это перечисление. После вызова этого метода для этого перечисления, перечисление становится недоступным, и последующие вызовы любых его методов дадут неопределённые результаты. Этот метод предназначен для прерывания перечисления, чтобы освободить ресурсы. Если перечисление завершится до конца - то есть, пока hasMoreElements() или hasMore() не вернут false, - ресурсы будут освобождены автоматически, и нет необходимости явным образом вызывать close().

Этот метод сигнализирует поставщику сервиса, что он свободен освободить ресурсы, связанные с перечислением, и может уведомить сервера о необходимости отмены всех открытых запросов. Метод close() служит подсказкой для реализации для управления своими ресурсами. Реализации рекомендуется использовать соответствующие алгоритмы для управления своими ресурсами, когда клиент пропускает вызовы close().

Выбрасывает:
NamingException - Если при закрытии перечисления возникает исключение именования.
С момента:
1.3

© 1993, 2023, 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/21/docs/api/java.naming/javax/naming/NamingEnumeration.html

Spec-Zone.ru

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