Tôi nhận được một NullPointerException khi thêm một mục vào một ArrayList IF ArrayList không được khởi tạo như một trường. Bất cứ ai có thể giải thích lý do tại sao?Java: Khởi tạo ArrayList trong trường OR constructor?
TRÌNH khi tôi khởi tạo ArrayList là một lĩnh vực:
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);
}
}
không hoạt động khi tôi tuyên bố ArrayList là một lĩnh vực sau đó khởi tạo nó trong các nhà xây dựng Class:
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);
}
}
Làm điều này khi tự khai báo biến cá thể, và bạn có thể làm gì hơn là 'final', vì bạn không bao giờ ghi đè lên nó. – fge