Spec-Zone.ru › OpenJDK 8

Интерфейс NamingEnumeration<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

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

© 1993, 2020, 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