迭代器不在Java中迭代类
import java.util.*;
class Person{
private String name;
private int age;
public Person(String name, int age) {
super();
this.name = name;
this.age = age;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + "]";
}
}
public class Iterator {
public static void main(String args[]) {
Collection<Person> collection = new ArrayList<Person>();
collection.add(new Person("Komal",45));
collection.add(new Person("Rahul",34));
collection.add(new Person("Rakesh",27));
Iterator iterator = collection.iterator();
while(iterator.hasNext()) {
System.out.println(iterator.next());
}
}
}
输出:
Exception in thread "main" java.lang.Error: Unresolved compilation problem: The type Iterator is not generic; it cannot be parameterized with arguments at java_classes.Iterator.main(Iterator.java:37)
那么,当我运行上面提到的代码时,我将如何使用迭代器对类person进行迭代,以显示错误
# 1 楼答案
问题是你的类名。您将其命名为“迭代器”,因此编译器认为您引用的是您创建的这个类,而不是java。util。迭代器类,在这里: 迭代器迭代器=集合。迭代器(); 你可以把它改成 JAVAutil。迭代器迭代器=集合。迭代器()
或者只是重命名您创建的类(也更改文件名,因为它是公共类)
# 2 楼答案
你的类名是
Iterator
,这是java.util.Iterator
。您可以重命名您的类。或者,您可以将Iterator iterator = collection.iterator();
更改为您的示例没有指定它应该是的
Iterator
类型(并且您自己的Iterator
不是泛型,因此如果您指定了Iterator<Person>
,那么您发布的Iterator
类将出现不同的错误)