我正在尝试为每个循环编写一个来打印列表的条目。
这是我的第一个方法:
public Staff() {
staffList = new StaffMember[4];
staffList[0] = new Executive("Sam", "123 Main Line",
"555-0469", "123-45-6789", 2423.07);
staffList[1] = new Employee("Carla", "456 Off Line",
"555-0101", "987-65-4321", 1246.15);
staffList[2] = new Employee("Woody", "789 Off Rocker",
"555-0000", "010-20-3040", 1169.23);
staffList[3] = new Hourly("Diane", "678 Fifth Ave.",
"555-0690", "958-47-3625", 10.55);
}
这是我的每个循环,导致错误:
for (Iterator<String> i = staffList.iterator; i.hasNext();) {
String item = i.next();
System.out.println(item);
}
我得到的错误是staffList.iterator说“找不到符号”
答案 0 :(得分:3)
staffList
是一个数组。您不能将数组视为Iterator
。
enhanced for
statement可以正常使用它,但是:
for(StaffMember member : staffList) {
System.out.println(member);
}
注意:您要迭代的元素类型是数组中定义的类型,而不是String
或其他任何内容。
如果您想了解为什么的详细信息,请鼓励您查看at the language specification以获取增强的for
语句。
答案 1 :(得分:2)
staffList
是一个数组。数组没有迭代器。如果要使用迭代器,请使用Collection
(例如List
)。
如果您正在迭代原始数组,请执行以下操作:
for ( StaffMember s : staffList ) {
...
}
此外,即使您使用的是列表,您的迭代器也会是Iterator<StaffList>
,而不是Iterator<String>