Интерфейс NamingEnumeration<T>
- Параметры типа:
T— тип элементов, возвращаемых этим перечислением
- Все суперинтерфейсы:
Enumeration<T>
public interface NamingEnumeration<T> extends Enumeration<T>
Когда метод, такой как 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
- См. также:
Краткое описание методов
Методы, объявленные в интерфейсе Enumeration
asIterator, hasMoreElements, nextElement
Подробное описание методов
next
T next() throws NamingException
Обратите внимание, что next() также может выбрасывать исключение времени выполнения NoSuchElementException, указывающее на то, что вызывающая сторона пытается продолжить перечисление за его пределами. Это отличается от NamingException, которое указывает на проблему при получении следующего элемента, например из-за переадресации или недоступности сервера и т. п.
- Возвращает:
- Возможно, null-элемент перечисления. Значение 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, 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