我试图将不同类型的变量(String和Integer)添加到对象列表中,但是当我运行代码时,我总是会得到NullPointerException。我已经调试了它,变量不是空的。有人可以帮助我并告诉我如何将不同类型的变量添加到对象列表中吗?
private int x;
private int y;
private int z;
private int stockwerk;
private String address;
private List<Object> list;
public List<Object> getAttributeList () {
list.add(1, this.x);
list.add(2, this.y);
list.add(3, this.z);
list.add(4, this.stockwerk);
list.add(5, this.address);
return this.list;
}
答案 0 :(得分:4)
您需要使用list = new ArrayList<Object>()
(例如)初始化列表一次。否则list将为null,list.add
将抛出NullPointerException。
答案 1 :(得分:0)
您发布的代码中有几处错误;
<强>第一强> 定义一个可以在其中初始化列表的构造函数
MyClass(){
list = new ArrayList<Object>();
}
第二名:只是因为列表可以带一个对象不允许你这样做..
list.add(1, this.x);
list.add(2, this.y);
list.add(3, this.z);
list.add(4, this.stockwerk);
list.add(5, this.address);
您需要在列表中输入整数或字符串
如果你真的需要这样做:list.add(5, this.address);
是因为你试图指定插入顺序,但是你是按顺序执行的,所以没有太大意义,因为列表可以自动为你做
如果你是试图在列表中放入一些整数+字符串(我可以推断这个因为问题的标题)然后重新设计架构,然后定义一个地图而不是一个列表,否则你将有一个试图读取清单中的数据真好头痛....