Интерфейс NamingEnumeration<T>
- Параметры типа:
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. Когда вызов next() для NamingEnumeration вернёт n-й результат, вызов hasMore() приведёт к выбрасыванию SizeLimitExceedException.
Обратите внимание: если программа вместо этого использует hasMoreElements() и nextElement() для перебора элементов NamingEnumeration, исключение выброшено не будет, поскольку эти методы не могут выбрасывать исключения. В предыдущем примере после того, как nextElement() вернёт n-й результат, вызов hasMoreElements() вернёт false.
Также обратите внимание: если программа вызывает next() или nextElement(), когда в перечислении не осталось элементов, выбрасывается NoSuchElementException. Программа всегда может избежать этого исключения, проверяя с помощью hasMore() и hasMoreElements(), достигнут ли конец перечисления.
Если во время перечисления выбрасывается исключение, перечисление становится недействительным. Последующие вызовы любых методов этого перечисления приведут к неопределённым результатам.
- Начиная с:
- 1.3
- См. также:
Краткое описание методов
Методы, объявленные в интерфейсе Enumeration
asIterator, hasMoreElements, nextElement | Модификатор и тип | Метод | Описание |
|---|---|---|
default Iterator |
asIterator() |
Возвращает Iterator, который перебирает оставшиеся элементы, входящие в это перечисление. |
boolean |
hasMoreElements() |
Проверяет, содержит ли это перечисление ещё элементы. |
T |
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.