0

私は次のクラスを持っています

   public class Patient implements Serializable {

  private int id;

  private String name;

  private String desc;
    public Patient(int id, String name, String desc) {

    this.id = id;
    this.name = name;
    this.desc=desc;
    }

そして、このクラスの次の getter メソッドと setter メソッド。

配列リストの宣言

  ArrayList<Patient> list = new ArrayList<Patient>();

リストへの実行時データの追加

   list.add(new Patient(id++, name.getText(), disDesc.getText())

今、リストに保存されている要素を読みたいのですが、どうすればいいですか?

    System.out.println(list.get(0));

私はこれを使用しますが、クラスのオブジェクトアドレスを返します

4

2 に答える 2

6

toString()のメソッドをオーバーライドする必要がありますPatientPatientそこで、表示したいオブジェクトに関するすべての情報を返します。

例: (私の個人的なお気に入り)

 private static final String SEPARATOR = ", ";

 @Override
 public String toString()
 {
      StringBuilder builder = new StringBuilder();

      builder.append("ID: ").append(id).append(SEPARATOR);
      builder.append("Name: ").append(name).append(SEPARATOR);
      builder.append("Desc: ").append(desc);

      return builder.toString();
 }

例 2:

 @Override
 public String toString()
 {
      return "ID: " + id + ", Name: " + name + ", Desc: " + desc;
 }

例 3:

 @Override
 public String toString()
 {
      return MessageFormat.format("ID: {0}, Name: {1}, Desc: {2}", id, name, desc);
 }

どちらかを使用してください。それは好みの問題です。

于 2013-10-05T11:27:01.107 に答える
2

要素をキャストする必要があります。

((Patient) list.get(0)).getName();

Patientまた、パブリック getter メソッドをクラスに追加する必要があります。

于 2013-10-05T11:31:19.680 に答える