|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
このインタフェースは、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() を使用してこの例外を常に回避できます。
列挙中に例外がスローされると、列挙は無効になります。列挙上でどのメソッドを次に呼び出しても、結果は保証されません。
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()
列挙内に他の要素があるかどうかを判定します。 |
Object |
next()
列挙内の次の要素を検索します。 |
インタフェース java.util.Enumeration から継承したメソッド |
hasMoreElements, nextElement |
メソッドの詳細 |
public Object next() throws NamingException
また、next() は、実行時例外 NoSuchElementException をスローして、呼び出し側が列挙の最大値を超えて列挙しようとしていることを表示できます。これは、参照やサーバの使用不可などのために、次の要素の取得時に問題が発生したことを表示する NamingException とは異なります。
NamingException
- 次の要素の検索中にネーミング例外が発生する場合。発生する可能性があるネーミング例外については、NamingException およびそのサブクラスを参照
NoSuchElementException
- 使用できる要素がないときに次の要素を取得しようとしている場合Enumeration.nextElement()
public boolean hasMore() throws NamingException
NamingException
- 列挙内に別の要素があるかどうかを判定している間にネーミング例外が発生する場合。発生する可能性があるネーミング例外については、NamingException およびそのサブクラスを参照Enumeration.hasMoreElements()
public void close() throws NamingException
このメソッドは、列挙に関連するリソースを自由に解放できることをサービスプロバイダに示し、また未処理要求の取り消しをサーバに通知できます。close() メソッドは、それらのリソースを管理する実装へのヒントになります。クライアントが close() 呼び出しを省略した場合、実装ではリソースを管理するのに適切なアルゴリズムを使用することをお勧めします。
NamingException
- 列挙を閉じている間に、ネーミング例外が発生する場合
|
JavaTM 2 Platform Std. Ed. v1.4.0 |
||||||||||
前のクラス 次のクラス | フレームあり フレームなし | ||||||||||
概要: 入れ子 | フィールド | コンストラクタ | メソッド | 詳細: フィールド | コンストラクタ | メソッド |
Java、Java 2D、および JDBC は米国ならびにその他の国における米国 Sun Microsystems, Inc. の商標もしくは登録商標です。
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.