2012-03-08 1 views
0

Я делаю это в моем коде:Перечисление hasMoreElements() возвращает ложь

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

У меня есть один элемент в моем Перечисления, но когда я инспектировать liste.hasMoreElements(), почему не возвращает false?

+0

Как вы инициализируете '_listeAttrubts'? –

+0

Ваш код не имеет смысла. –

+0

должно быть '_liste.hasMoreelements()'? – Kent

ответ

2

Я бы getListe() всегда возвращать коллекцию (пустую или иной образом) и использовать только итератор.

например.

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

Вместо создания пустого списка вы можете использовать Collections.emptyList() (и другие пустые коллекции)

Если Перечень должен иметь элемент, но не, это позволяет предположить, у вас есть ошибка в getListe()

0

Вы уже перечислили перечисление? То есть getListe() возвращает новый список элементов?

Из Javadoc:

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

yes i iterated my enum – Mercer

+0

Перечисление - это итератор, экземпляр может повторяться только один раз. – kevingallagher

+0

Как я могу выполнить повторное повторение – Mercer