我有一个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;
}
}
答案 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();
}