0

我敢肯定,非常简单的错误,只是出于某种原因有一个心理障碍!

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

订单类变量:

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

这是订单类:

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);
}
4

1 回答 1

1

您未能初始化 items。采用

vorder = new Order(int1, int2);

代替

vorder = new Order();

items在里面初始化

public Order(int covers, int table) {

}

不在默认构造函数上。

于 2013-01-10T01:02:22.720 回答