2012-03-08 145 views
0

我這樣做在我的代碼:枚舉的hasMoreElements()返回false

  Enumeration liste = attribut.getListe(); 
      if (liste != null) { 
       while (liste.hasMoreElements()) { 
... 

我在我的枚舉一個元素,但是當我檢查liste.hasMoreElements(),爲什麼它返回false

+0

如何初始化'_listeAttrubts'? – 2012-03-08 16:18:48

+0

你的代碼沒有意義。 – 2012-03-08 16:20:58

+0

應該是'_liste.hasMoreelements()'? – Kent 2012-03-08 16:21:16

回答

2

我會getListe()總是返回集合(空或其他方式),並且只使用一個Iterator。

例如

for(Entry e: getListe()) { 
    // do something with e. 
} 

而不是創建一個空的列表,你可以用Collections.emptyList()(和其他空集合)

如果枚舉應該有一個元素,但不會,它會建議你在getListe一個bug()

0

您是否已經迭代了枚舉?即getListe()返回一個新的元素列表?

根據JavaDoc:

for (Enumeration e = v.elements() ; e.hasMoreElements() ;) { 
    System.out.println(e.nextElement()); 
} 
+0

是的,我迭代我的枚舉 – Mercer 2012-03-08 16:24:43

+0

枚舉是一個迭代器,一個實例只能迭代一次。 – kevingallagher 2012-03-08 16:30:21

+0

我該怎麼做迭代兩次 – Mercer 2012-03-08 16:31:24