Spec-Zone.ru › OpenJDK 24

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

Type Parameters:
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

Отправить сообщение об ошибке или предложить улучшение
Для получения дополнительной информации об API и документации по разработке см. Java SE Documentation, которая содержит более подробные описания, нацеленные на разработчиков, с концептуальными обзорами, определениями терминов, обходами и примерами работоспособного кода. Другие версии.
Java — торговая марка или зарегистрированная торговая марка Oracle и/или ее аффилированных лиц в США и других странах.
Авторское право © 1993, 2025, Oracle и/или ее аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется лицензионными условиями и политикой распространения документации.
DRAFT 24-ea+36-Debian-1

© 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.naming/javax/naming/NamingEnumeration.html

Spec-Zone.ru

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