モジュール java.naming
パッケージ javax.naming

インタフェース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を返します。 その結果の最後がNamingEnumerationのnext()で返されたときに、hasMore()を呼び出すとPartialResultExceptionがスローされます。

別の例として、search()メソッドが、サイズを'n'に制限指定して呼び出されたとします。 回答が'n'より多くなった場合、search()は最初にNamingEnumerationを返します。 n番目の結果がNamingEnumerationでnext()を呼び出して返されたときは、hasMore()を呼び出すとSizeLimitExceedExceptionがスローされます。

プログラムでNamingEnumerationを繰り返さずに、hasMoreElements()およびnextElement()を使用すると、これらのメソッドは例外をスローできないため、例外はスローされません。 代わりに、前の例で、n番目の結果がnextElement()によって返されたあとにhasMoreElements()を呼び出すとfalseが返されます。

また、列挙内に要素が残っていない場合は、プログラムでnext()またはnextElement()を呼び出すとNoSuchElementExceptionがスローされます。 プログラムでは、列挙の終わりに到達したかどうかを確認するhasMore()およびhasMoreElements()を使用してこの例外を常に回避できます。

列挙中に例外がスローされると、列挙は無効になります。 列挙上でどのメソッドを次に呼び出しても、結果は保証されません。

導入されたバージョン:
1.3
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    void
    この列挙を閉じます。
    boolean
    列挙内にほかの要素があるかどうかを判定します。
    列挙内の次の要素を検索します。

    インタフェース java.util.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