我有一个哈希表,包含一个唯一的标识符作为键,一个对象作为值。我试图浏览哈希表中的所有值并打印出对象的值,但Eclipse告诉我对象的成员无法解析。我的代码如下所示:
Enumeration<myobj> items = myhashtable.elements();
while (items.hasMoreElements()) {
System.out.println(items.X + " - " + items.Y.Z());
items.nextElement();
}
X
是一个String,Y
是主对象中的另一个对象,其方法Z
返回一个字符串。
答案 0 :(得分:2)
您正在错误的对象上调用您的字段。
Enumeration<myobj> items = myhashtable.elements();
while (items.hasMoreElements()) {
myobj item = items.nextElement();
System.out.println(item.X + " - " + item.Y.Z());
}
但是,Iterator现在比Enumeration更受欢迎,因为来自javadoc的引用显示:
注意:此接口的功能由 迭代器接口。此外,Iterator添加了一个可选的删除 操作,并具有较短的方法名称。新的实现应该 考虑使用Iterator优先于Enumeration。
使用Iterator和Iterable,除其他外,你可以使用像for (Type t : myIterableOfTypeT)
这样的同步糖。