我将列表名称声明为公共,并且人员类具有 setter 和 getters 方法。在服务类中已执行该方法并且它具有值列表。
现在我想从列表中获取所有名字。
所以尝试如下...
Iterator<Person> it = name.iterator();
while(it.hasNext()) {
name = (Person)it.next();
String firsname=it.next();
}
请纠正我这里有什么问题。
我将列表名称声明为公共,并且人员类具有 setter 和 getters 方法。在服务类中已执行该方法并且它具有值列表。
现在我想从列表中获取所有名字。
所以尝试如下...
Iterator<Person> it = name.iterator();
while(it.hasNext()) {
name = (Person)it.next();
String firsname=it.next();
}
请纠正我这里有什么问题。
不,该代码不起作用,因为您的第二次演员将失败:it.next()
将是 a Person
,而不是 a String
。
以下是修复代码的方法:
List<String> firstNames = new ArrayList<String>();
Iterator <Person> it = name.iterator(); // shouldn't this be persons.iterator() ?
while (it.hasNext()) {
Person p = it.next(); // No need to cast
String firsname = p.getFirstName();
firstNames.add(firstName);
}
或者,您可以这样做:
List<String> firstNames = new ArrayList<String>();
for (Person p : persons) {
firstNames.add(p.getFirstName());
}