मुझे एक ArleList में कोई आइटम जोड़ते समय एक NullPointerException प्राप्त हो रहा है IF ArrayList को फ़ील्ड के रूप में प्रारंभ नहीं किया गया है। क्या कोई समझा सकता है क्यों?जावा: क्षेत्र या निर्माता में 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);
}
}
ऐसा करें जब
आप ताकि आप सदस्य चर को संदर्भित कर रहे हैं निर्माता में प्रकार घोषणा से छुटकारा पाने की जरूरत है इंस्टेंस वैरिएबल को स्वयं घोषित करना, और आप इसे 'अंतिम' बना सकते हैं, क्योंकि आपने कभी इसे ओवरराइट नहीं किया है। – fge