2014-12-08 2 views
-1

Я хочу, чтобы получить доступ к элементам в перечислении, используя следующий код:Java доступ к первому элементу перечисления

Enumeration<SomeClass> en = someFunctionToRetrieveEnumeration(); 

while(en.hasMoreElements()){ 
    String name = en.nextElement().getName(); 
    System.out.println(name); 
} 

печатной продукции выглядит следующим образом:

name2 

Что должно быть на выходе:

name1 
name2 

Я проверил и en действительно содержит два элемента Почему мой код печатает только второй?

ответ

1

Enumeration<SomeClass> en = someFunctionToRetrieveEnumeration();

if(en.hasMoreElements()){
do{
String name = en.nextElement().getName();
System.out.println(name);
}while(en.hasMoreElements());
}

Upd:

Похоже функция обратного перечисления с использованными итератора. Перечисление - это интерфейс. Для получения первого элемента вам нужно знать реальный тип Enumeration и check - если можно повторить его снова (получить новый итератор)

+0

Это похоже на более сложную версию исходного кода. –

+1

@ GáborBakos, Кажется, что функция возвращает перечисление с использованием итератора – msangel

+0

@msangel, Спасибо, это была ошибка. Вы случайно знаете, могу ли я сбросить итератор? – maax

Смежные вопросы