當向ArrayList添加項目時,我會遇到NullPointerException如果ArrayList未初始化爲字段。誰能解釋爲什麼?Java:在字段OR構造函數中初始化ArrayList?
工程時,我初始化的ArrayList作爲一個字段:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList = new ArrayList<Item>();
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
}
public void add(Item i) {
itemsInGroceryList.add(i);
}
}
當我宣佈ArrayList中作爲一個字段不工作,然後在類的構造函數初始化:
public class GroceryBill {
private String clerkName;
private ArrayList<Item> itemsInGroceryList;
private double total;
//Constructs a grocery bill object for the given clerk
public GroceryBill(Employee Clerk) {
this.clerkName = Clerk.getEmployeeName();
this.total = 0.0;
ArrayList<Item> itemsInGroceryList = new ArrayList<Item>();
}
public void add(Item i) {
itemsInGroceryList.add(i);
}
}
時做到這一點聲明實例變量本身,還有什麼可以讓它成爲'final',因爲你永遠不會覆蓋它。 – fge