簡體   English   中英

如何覆蓋對象的ArrayList的ToString方法?

[英]How to override the ToString method of ArrayList of object?

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方法的最簡單方法是什么?

實際上你需要覆蓋Person類中的toString(),它將返回firstname,因為,ArrayList會自動調用封閉類型的toString來打印元素的字符串表示。

@Override
public String toString() {
    return this.firstname;
}

所以,將上面的方法添加到Person類中,可能你會得到你想要的。

PS : - 在旁注中,您不需要執行people.toString() 只需執行System.out.println(people) ,它就會自動為ArrayList調用toString()方法。

您可以在Person類上編寫靜態幫助器方法:

public static String toString(ArrayList<Person> people) {

    Iterator<Person> iter = people.iterator();

    ....


}

Person類中寫入覆蓋方法toString()方法。

public String toString() {
    return firstname;
}

在這種情況下,您必須覆蓋Person類的toString方法,因為arrayList只是迭代Person類實例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM