2012-10-23 87 views
4
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方法的最簡單方法是什麼?如何覆蓋對象的ArrayList的ToString方法?

回答

5

實際上,您需要在Person類中重寫toString(),它將返回firstname,因爲ArrayList會自動調用封閉類型的toString以打印元素的字符串表示形式。

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

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

P.S.: - 在附註中,您不需要做people.toString()。只要執行System.out.println(people),它將自動調用toString()方法ArrayList。在Person

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

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

    .... 


} 
2

您可以在Person類寫一個靜態輔助方法。

public String toString() { 
    return firstname; 
} 
2

寫重寫方法toString()方法:

0

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