JavaTM 2 Platform
Standard Ed. 6

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。

在另一個範例中,在指定大小限制為 '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()

方法摘要
 void close()
          關閉此列舉。
 boolean hasMore()
          確定列舉中是否還有元素。
 T next()
          檢索列舉中的下一個元素。
 
從介面 java.util.Enumeration 繼承的方法
hasMoreElements, nextElement
 

方法詳細資訊

next

T next()
       throws NamingException
檢索列舉中的下一個元素。此方法允許應用程序捕獲並處理在檢索下一個元素時遇到的命名異常。

注意,next() 還可以拋出運行時異常 NoSuchElementException,指示調用者試圖超出列舉的尾部進行列舉。此異常不同於 NamingException,後者指示在獲得下一個元素時存在問題,比如說,因為某一項參考或者伺服器不可用等等。

返回:
列舉中的元素(可能為 null)。只有對於可以返回 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

JavaTM 2 Platform
Standard Ed. 6

提交錯誤或意見

版權所有 2008 Sun Microsystems, Inc. 保留所有權利。請遵守GNU General Public License, version 2 only