Ich erhalte eine NullPointerException beim Hinzufügen eines Elements zu einer ArrayList, wenn die ArrayList nicht als Feld initialisiert ist. Kann mir jemand erklären warum?Java: ArrayList in Feld ODER Konstruktor initialisieren?
funktioniert, wenn ich die Arraylist als ein Feld initialisieren:
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);
}
}
funktioniert nicht, wenn ich die Arraylist als ein Feld deklarieren dann in der Klasse Konstruktor initialisieren:
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);
}
}
dies tun, wenn Deklarieren der Instanzvariable selbst, und was noch mehr ist, können Sie "final" machen, da Sie sie niemals überschreiben. – fge