オブジェクトが適切に存在しているように見えても、私のコードは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);
なんでこんなことが起こっているの?
指定したコードの部分に基づいて、myPolygon
を初期化していないようです
private ArrayList<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>();
リストを必ず初期化してください:
private List<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>();
また、myPolygonをArrayList(実装)ではなくList(インターフェイス)として定義するのが最善であることに注意してください。