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

4

4 に答える 4

5

実際には、PersonクラスのtoString()をオーバーライドする必要があります。これにより、名が返されます。これは、ArrayListが、要素の文字列表現を出力するために、囲んでいる型のtoStringを自動的に呼び出すためです。

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

したがって、上記のメソッドをPersonクラスに追加すると、おそらく必要なものが得られます。

PS:-ちなみに、あなたはする必要はありませんpeople.toString()。を実行するだけで、のメソッドSystem.out.println(people)が自動的に呼び出されます。toString()ArrayList

于 2012-10-23T10:38:27.683 に答える
2

Personクラスに静的ヘルパーメソッドを記述できます。

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

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

    ....


}
于 2012-10-23T10:40:34.010 に答える
2

クラスにオーバーライドメソッドtoString()メソッドを記述しますPerson

public String toString() {
    return firstname;
}
于 2012-10-23T10:41:03.497 に答える
0

この場合toString、arrayListはPersonクラスインスタンスを繰り返すだけなので、Personクラスのメソッドをオーバーライドする必要があります。

于 2012-10-23T10:45:29.840 に答える