无法初始化ArrayList

时间:2013-01-10 00:55:16

标签: android arraylist nullpointerexception

非常简单的错误我确定,出于某种原因只是出于心理障碍!

我有一个包含其他对象的ArrayList的对象。当我尝试初始化构造函数中的列表时,它似乎没有初始化,当我尝试访问代码中的列表时,我得到一个nullpointer。

订单类变量:

private int covers;
    private int table;
    private ArrayList<MenuItem> items;

以下是Order类:

public Order(int covers, int table) {
    super();
    this.covers = covers;
    this.table = table;
    this.items = new ArrayList<MenuItem>();
}

以下是MainActivity中的代码导致我出现问题:

order = new Order();
    order.setCovers(2);
    order.setTable(1);
    order.addToOrder(new MenuItem("Item 1", 12.99));
    Toast.makeText(getApplicationContext(), "order size: " + order.getItems().size(), Toast.LENGTH_SHORT).show();

我希望Toast显示“1”。但是当我运行调试器时,我注意到订单对象ArrayList属性等于null。

知道为什么吗?提前谢谢!

编辑:addToOrder方法:

public void addToOrder(MenuItem m){
    items.add(m);
}

1 个答案:

答案 0 :(得分:1)

您无法初始化items。使用

vorder = new Order(int1, int2);

而不是

vorder = new Order();

items

中初始化
public Order(int covers, int table) {

}

不在默认构造函数上。