class Person {
public String firstname;
public String lastname;
}
Person p1 = new Person("Jim","Green");
Person p2 = new Person("Tony","White");
ArrayList<Person> people = new ArrayList<Person>();
people.add(p1);
people.add(p2);
System.out.println(people.toString());
我希望输出为[Jim,Tony]
,如果存在这样的方法,覆盖ToString
方法的最简单方法是什么?
答案 0 :(得分:5)
你实际上需要覆盖Person类中的toString(),它将返回firstname,因为,ArrayList会自动调用封闭类型的toString来打印元素的字符串表示。
@Override
public String toString() {
return this.firstname;
}
所以,将上面的方法添加到Person类中,可能你会得到你想要的东西。
P.S。: - 在旁注中,您不需要people.toString()
。只需执行System.out.println(people)
,它就会自动调用toString()
的{{1}}方法。
答案 1 :(得分:2)
您可以在Person类上编写静态帮助器方法:
public static String toString(ArrayList<Person> people) {
Iterator<Person> iter = people.iterator();
....
}
答案 2 :(得分:2)
在toString()
类中编写覆盖方法Person
方法。
public String toString() {
return firstname;
}
答案 3 :(得分:0)
在这种情况下,您必须覆盖Person类的toString
方法,因为arrayList只是迭代Person类实例。