2010-10-16 104 views
16

即使對象似乎正確存在,我的代碼仍然拋出一個NullPointerException異常。添加到ArrayList時Java NullPointerException?

public class IrregularPolygon { 

    private ArrayList<Point2D.Double> myPolygon; 

    public void add(Point2D.Double aPoint) { 
     System.out.println(aPoint); // Outputs Point2D.Double[20.0, 10.0] 
     myPolygon.add(aPoint); // NullPointerException gets thrown here 
    } 
} 

// Everything below this line is called by main() 

    IrregularPolygon poly = new IrregularPolygon(); 
    Point2D.Double a = new Point2D.Double(20,10); 
    poly.add(a); 

這是怎麼發生的?

回答

43

根據您所提供的代碼的部分,它看起來像你還沒有初始化myPolygon

13
private ArrayList<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>(); 
8

確保您初始化列表:

private List<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>(); 

另外請注意,這是最好的將myPolygon定義爲List(接口)而不是ArrayList(實現)。

+0

這是真的嗎?我不這麼認爲,因爲如果你將它初始化爲一個'ArrayList',那麼你不需要在參數的另一端指定一個類型。 – Ajay 2016-12-31 17:33:25

相關問題