1

我将列表名称声明为公共,并且人员类具有 setter 和 getters 方法。在服务类中已执行该方法并且它具有值列表。

现在我想从列表中获取所有名字。

所以尝试如下...

Iterator<Person> it = name.iterator();

while(it.hasNext()) {

    name = (Person)it.next();
    String firsname=it.next();

}

请纠正我这里有什么问题。

4

1 回答 1

3

不,该代码不起作用,因为您的第二次演员将失败: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());
}
于 2013-05-14T18:16:24.833 回答