Module  java.naming
软件包  javax.naming

Interface NamingEnumeration<T>

  • All Superinterfaces:
    Enumeration<T>


    public interface NamingEnumeration<T>
    extends Enumeration<T>
    此接口用于枚举javax.naming和javax.naming.directory包中的方法返回的列表。 它扩展枚举以允许在枚举期间抛出异常。

    当一个方法如list(),listBindings()或search()返回一个NamingEnumeration时,任何遇到的异常被保留,直到返回所有结果为止。 在枚举结束时,抛出异常(由hasMore());

    例如,如果list()只返回部分答案,则相应的异常将是PartialResultException。 list()将首先返回NamingEnumeration。 当NamingEnumeration的next()返回最后一个结果时,调用hasMore()将导致抛出PartialResultException。

    在另一个例子中,如果调用了一个指定的大小限制为'n'的search()方法。 如果答案由超过'n'个结果组成,则search()将首先返回一个NamingEnumeration。 当NamingEnumeration调用next()返回第n个结果时,调用hasMore()时会抛出SizeLimitExceedException异常。

    请注意,如果程序使用hasMoreElements()和nextElement()来迭代NamingEnumeration,因为这些方法不能抛出异常,不会抛出异常。 相反,在前面的例子中,在nextElement()返回第n个结果之后,调用hasMoreElements()将返回false。

    还要注意,如果程序在枚举中没有剩余的元素时调用next()或nextElement(),则抛出NoSuchElementException异常。 该程序总是可以通过使用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()
    • 方法详细信息

      • next

        T next​()
        throws NamingException
        检索枚举中的下一个元素。 此方法允许在检索要由应用程序捕获和处理的下一个元素时遇到异常。

        请注意, next()还可以抛出运行时异常NoSuchElementException以指示调用者尝试枚举超出枚举结束。 这与NamingException不同,NamingException表示获取下一个元素有问题,例如,由于引用或服务器不可用等原因。

        结果
        枚举中可能为null的元素。 null仅对可以返回null的枚举有效(例如,Attribute.getAll()返回属性值的枚举,属性值可以为null)。
        异常
        NamingException - 如果在尝试检索下一个元素时遇到命名异常。 有关可能的命名异常,请参阅NamingException及其子类。
        NoSuchElementException - 如果尝试在没有可用时获取下一个元素。
        另请参见:
        Enumeration.nextElement()
      • hasMore

        boolean hasMore​()
                 throws NamingException
        确定枚举中是否有更多的元素。 该方法允许在确定应用程序是否有更多元素被捕获和处理时遇到遇到的命名异常。
        结果
        如果在枚举中有更多的话; 否则为假。
        异常
        NamingException - 如果在尝试确定枚举中是否存在另一个元素时遇到命名异常。 有关可能的命名异常,请参阅NamingException及其子类。
        另请参见:
        Enumeration.hasMoreElements()
      • close

        void close​()
            throws NamingException
        关闭此枚举。 在此枚举后调用此方法后,枚举将变为无效,并且随后调用其任何方法将产生未定义的结果。 此方法用于中止枚举以释放资源。 如果枚举结束 - 即hasMoreElements()hasMore()返回false - 资源将自动释放,并且不需要显式调用close()

        该方法向服务提供商指示可以释放与枚举相关联的资源,并可以通知服务器取消任何未完成的请求。 close()方法是管理其资源的实现的提示。 当客户端省略close()电话时,鼓励实施使用适当的算法来管理其资源。

        异常
        NamingException - 如果在关闭枚举时遇到命名异常。
        从以下版本开始:
        1.3