2014-09-07 4 views
0

У меня есть хэш-таблица с содержит уникальный идентификатор в качестве ключа и объекта в качестве значения. Я пытаюсь выполнить все значения в хэш-таблице и распечатать значения объекта, но Eclipse сообщает мне, что члены объекта не могут быть разрешены. Мой код выглядит следующим образом:Невозможно получить доступ к элементам объекта в перечислении

Enumeration<myobj> items = myhashtable.elements(); 
while (items.hasMoreElements()) { 
    System.out.println(items.X + " - " + items.Y.Z()); 
    items.nextElement(); 
} 

X является строкой и Y еще один объект в пределах основного объекта, его метод Z возвращает строку.

+0

Что такое сообщение об ошибке ...? –

ответ

2

Вы вызываете свои поля не на тот объект.

Enumeration<myobj> items = myhashtable.elements(); 
while (items.hasMoreElements()) { 
    myobj item = items.nextElement(); 
    System.out.println(item.X + " - " + item.Y.Z()); 
} 

Однако итератор теперь предпочитают Перечисления, как цитата из Javadoc показывает:

Примечания: Функциональность этого интерфейса дублирует интерфейс итератора. Кроме того, Iterator добавляет необязательную операцию удаления и имеет более короткие имена методов. Новые реализации должны рассмотреть возможность использования Iterator в соответствии с Enumeration.

Использование Iterator и Iterable, вы можете использовать, помимо прочего, некоторый синктатический сахар, такой как for (Type t : myIterableOfTypeT).

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