Spec-Zone.ru › OpenJDK 27

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

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

Также обратите внимание: если программа вызывает next() или nextElement(), когда в перечислении не осталось элементов, выбрасывается NoSuchElementException. Программа всегда может избежать этого исключения, проверяя с помощью 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
Модификатор и тип Метод Описание
default Iterator<T> asIterator()
Возвращает Iterator, который перебирает оставшиеся элементы, входящие в это перечисление.
boolean hasMoreElements()
Проверяет, содержит ли это перечисление ещё элементы.
T 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, 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