list一直显示null

时间:2016-01-12 09:07:48

标签: java arraylist

我有一个List对象使用ArrayList来存储String对象。当我尝试在main方法中使用list.add("a")时,它显示为null。当我使用System.out.println(list.toString())我做错了什么?

class List
    {
      //Instance variables
      private String data;
      private ArrayList list;

      //Constructor
      public List()
      {
        this.list = new ArrayList();
      }
      public void add(String data)
      {
        list.add(data);
      }

      public String toString()
      {
        return data;
      }
    } 

2 个答案:

答案 0 :(得分:3)

您不需要班级中的data成员,因为您将数据存储在列表中。由于您未使用该成员,因此仍为null,并且您在null方法中返回toString

更改toString方法以返回String的{​​{1}}表示形式:

ArrayList

P.S。最好重命名您的课程,因为 public String toString() { return list.toString(); } 可能会隐藏List(即使您似乎没有使用java.util.List,但它仍然是一个好主意重用标准的JDK类/接口名称。)

答案 1 :(得分:0)

将你的tostring()方法更改为

  public String toString()
      {
        return list.toString();
      }