Интерфейс NamingEnumeration<T>
- Все суперинтерфейсы:
Enumeration<T>
public interface NamingEnumeration<T> extends Enumeration<T>
Когда метод, такой как list(), listBindings() или search(), возвращает NamingEnumeration, любые возникшие исключения сохраняются до тех пор, пока не будут возвращены все результаты. В конце перечисления исключение выбрасывается (методом hasMore());
Например, если list() возвращает только частичный ответ, соответствующим исключением будет PartialResultException. list() сначала вернёт NamingEnumeration. Когда последний из результатов будет возвращён методом next() NamingEnumeration, вызов hasMore() приведёт к выбрасыванию PartialResultException.
В другом примере, если метод search() был вызван с заданным предельным размером 'n'. Если ответ содержит более чем 'n' результатов, search() сначала вернёт NamingEnumeration. Когда n-й результат будет возвращен вызовом next() на NamingEnumeration, вызов hasMore() выбросит SizeLimitExceedException.
Обратите внимание, что если программа использует hasMoreElements() и nextElement() для итерации по NamingEnumeration, так как эти методы не могут выбрасывать исключения, исключение не будет выброшено. Вместо этого, в предыдущем примере, после того, как n-й результат был возвращен методом nextElement(), вызов hasMoreElements() вернёт false.
Также обратите внимание, что NoSuchElementException выбрасывается, если программа вызывает next() или nextElement(), когда в перечислении больше нет элементов. Программа всегда может избежать этого исключения, используя hasMore() и hasMoreElements() для проверки, достигнут ли конец перечисления.
Если во время перечисления выбрасывается исключение, перечисление становится недействительным. Последующий вызов любого метода на этом перечислении даст неопределённые результаты.
Краткое описание методов
Методы, объявленные в интерфейсе java.util.Enumeration
asIterator, hasMoreElements, nextElement
Подробное описание методов
next
T next() throws NamingException
Обратите внимание, что next() может также выбросить исключение времени выполнения NoSuchElementException, чтобы указать, что вызывающая сторона пытается перечислить за пределы конца перечисления. Это отличается от NamingException, который указывает, что возникла проблема при получении следующего элемента, например, из-за пересылки или недоступности сервера и т. д.
- Возвращает:
- Возможный элемент в перечислении. null допустим только для перечислений, которые могут возвращать null (например, Attribute.getAll() возвращает перечисление значений атрибутов, и значение атрибута может быть null).
- Выбрасывает:
-
NamingException- Если при попытке получить следующий элемент возникает исключение именования. См. NamingException и его подклассы для возможных исключений именования. -
NoSuchElementException- Если попытка получить следующий элемент происходит, когда элементов больше нет. - См. также:
hasMore
boolean hasMore() throws NamingException
- Возвращает:
- true, если в перечислении есть ещё элементы; false в противном случае.
- Выбрасывает:
-
NamingException- Если при определении наличия следующего элемента в перечислении возникает исключение именования. См. NamingException и его подклассы для возможных исключений именования. - См. также:
close
void close() throws NamingException
hasMoreElements() или hasMore() возвращают false — ресурсы будут освобождены автоматически, и нет необходимости явно вызывать close(). Этот метод указывает поставщику услуг, что он может освободить ресурсы, связанные с перечислением, и может уведомить серверы о необходимости отменить любые открытые запросы. Метод close() является подсказкой для реализаций для управления своими ресурсами. Реализации рекомендуются использовать подходящие алгоритмы для управления своими ресурсами, когда клиент опускает вызовы close().
- Выбрасывает:
-
NamingException- Если при закрытии перечисления возникает исключение именования. - С:
- 1.3
© 1993, 2021, 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/17/docs/api/java.naming/javax/naming/NamingEnumeration.html