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()方法Patient。在那里,您将返回有关Patient要显示的对象的所有信息。

示例:(我个人最喜欢的)

 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 回答