2012-03-08 107 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