Reputation: 14559
My code is throwing a NullPointerException, even though the object seems to properly exist.
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);
Why is this happening?
Upvotes: 24
Views: 96309
Reputation: 31903
Make sure you initialize the List:
private List<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>();
Also note that it's best to define myPolygon as a List (interface) and not ArrayList (implementation).
Upvotes: 12
Reputation: 200080
private ArrayList<Point2D.Double> myPolygon = new ArrayList<Point2D.Double>();
Upvotes: 20
Reputation: 27886
based on the parts of the code you provided, it looks like you haven't initialized myPolygon
Upvotes: 55