非常简单的错误我确定,出于某种原因只是出于心理障碍!
我有一个包含其他对象的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);
}
答案 0 :(得分:1)
您无法初始化items
。使用
vorder = new Order(int1, int2);
而不是
vorder = new Order();
items
在
public Order(int covers, int table) {
}
不在默认构造函数上。