如何覆盖对象的ArrayList的ToString方法?

Ter*_* Li 4 java string overriding arraylist tostring

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());
Run Code Online (Sandbox Code Playgroud)

我想输出是[Jim,Tony]什么,ToString如果存在这样的方法,覆盖方法的最简单方法是什么?

Roh*_*ain 5

实际上你需要覆盖Person类中的toString(),它将返回firstname,因为,ArrayList会自动调用封闭类型的toString来打印元素的字符串表示.

@Override
public String toString() {
    return this.firstname;
}
Run Code Online (Sandbox Code Playgroud)

所以,将上面的方法添加到Person类中,可能你会得到你想要的.

PS: - 在旁注中,您不需要这样做people.toString().只是这样System.out.println(people),它会自动调用toString()方法ArrayList.