Spec-Zone.ru › OpenJDK 25

Интерфейс 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. Когда NamingEnumeration вернет последний результат методом next(), вызов hasMore() приведет к выбрасыванию PartialResultException.

В другом примере метод search() вызывается с указанным ограничением размера «n». Если ответ содержит более «n» результатов, search() сначала вернет NamingEnumeration. После возврата «n»-го результата вызовом next() для NamingEnumeration вызов hasMore() приведет к выбрасыванию SizeLimitExceedException.

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

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

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

Начиная с:
1.3
См. также:
  • Context.list(Name)
  • Context.listBindings(Name)
  • DirContext.search(Name, Attributes, String[])
  • Attributes.getAll()
  • Attributes.getIDs()
  • Attribute.getAll()

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

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

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

asIterator, hasMoreElements, nextElement

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

next

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

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

Возвращает:
Возможно, null-элемент перечисления. Значение 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в разделе Документация Java SE, содержащем более подробные описания для разработчиков, обзоры концепций, определения терминов, способы обхода проблем и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или ее аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, 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.
https://docs.oracle.com/en/java/javase/25/docs/api/java.naming/javax/naming/NamingEnumeration.html

Spec-Zone.ru

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