web-dev-qa-db-ja.com

Java ArrayListに追加する際にNullPointerException?

オブジェクトが適切に存在しているように見えても、私のコードは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);

なんでこんなことが起こっているの?

21
waiwai933

指定したコードの部分に基づいて、myPolygonを初期化していないようです

50
Brad Mace
private ArrayList<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>();
18
Cristian

リストを必ず初期化してください:

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

また、myPolygonをArrayList(実装)ではなくList(インターフェイス)として定義するのが最善であることに注意してください。

10
cherouvim