2014-03-03 50 views
0

這是我試圖使用的代碼,但每當我運行它時,我得到一個錯誤,說java.lang.NullPointerException null 並突出顯示myContents.add(b);eIMACS項目3 java.lang.NullPointerException

import java.util.*; 
public class Bin 
{ 
    private String myName; 
    private ArrayList<BinItem> myContents; 
    public Bin(String name) 
    { 
     myName = name; 
    } 
    public String getName() 
    { 
     return myName; 
    } 
    public ArrayList<BinItem> getContents() 
    { 
     return myContents; 
    } 
    public void add(BinItem b) 
    { 
     myContents.add(b); 
    } 
    public String toString() 
    { 
     String s = "Bin " + myName + ":\n"; 
     for (BinItem b : myContents) 
      s += b + "\n"; 
     return s; 
    } 
} 

回答

0
private ArrayList<BinItem> myContents; 

你剛纔宣佈myContents,從來沒有初始化它。因此它是null

聲明它時進行初始化。

private List<BinItem> myContents= new ArrayList<BinItem>(); 

或者您可以在使用之前做到這一點。

沒有初始化的線

myContents.add(b);

在運行時的樣子

null.add(b); 
+0

這似乎這樣的伎倆,非常感謝你! – user2526522