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番目の結果がNamingEnumerationでnext()を呼び出して返されたときは、hasMore()を呼び出すとSizeLimitExceedExceptionがスローされます。
プログラムでNamingEnumerationを繰り返さずに、hasMoreElements()およびnextElement()を使用すると、これらのメソッドは例外をスローできないため、例外はスローされません。代わりに、前の例で、n番目の結果がnextElement()によって返されたあとにhasMoreElements()を呼び出すとfalseが返されます。
また、列挙内に要素が残っていない場合は、プログラムでnext()またはnextElement()を呼び出すとNoSuchElementExceptionがスローされます。プログラムでは、列挙の終わりに到達したかどうかを確認するhasMore()およびhasMoreElements()を使用してこの例外を常に回避できます。
列挙中に例外がスローされると、列挙は無効になります。列挙上でどのメソッドを次に呼び出しても、結果は保証されません。
修飾子と型 | メソッドと説明 |
---|---|
void |
close()
この列挙を閉じます。
|
boolean |
hasMore()
列挙内にほかの要素があるかどうかを判定します。
|
T |
next()
列挙内の次の要素を検索します。
|
hasMoreElements, nextElement
T next() throws NamingException
また、next()は、実行時例外NoSuchElementExceptionをスローして、呼出し側が列挙の最大値を超えて列挙しようとしていることを表示できます。これは、参照やサーバーの使用不可などのために、次の要素の取得時に問題が発生したことを表示するNamingExceptionとは異なります。
NamingException
- 次の要素の取得中にネーミング例外が見つかった場合。可能性のあるネーミング例外については、NamingExceptionとそのサブクラスを参照。NoSuchElementException
- 使用できる要素がないときに次の要素を取得しようとしている場合。Enumeration.nextElement()
boolean hasMore() throws NamingException
NamingException
- 列挙内にその他の要素があるかどうかを判定している間に、ネーミング例外が発生した場合発生する可能性がある。可能性のあるネーミング例外については、NamingExceptionとそのサブクラスを参照。Enumeration.hasMoreElements()
void close() throws NamingException
このメソッドは、列挙に関連するリソースを自由に解放できることをサービス・プロバイダに示し、また未処理要求の取消しをサーバーに通知できます。close()メソッドは、それらのリソースを管理する実装へのヒントになります。クライアントがclose()呼出しを省略した場合、実装ではリソースを管理するのに適切なアルゴリズムを使用することをお勧めします。
NamingException
- 列挙を閉じている間に、ネーミング例外が発生する場合。 バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.