2010-10-16 35 views
16

Mã của tôi đang ném NullPointerException, mặc dù đối tượng dường như tồn tại đúng cách.Java NullPointerException khi thêm vào ArrayList?

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); 

Tại sao điều này lại xảy ra?

Trả lời

43

dựa trên các bộ phận của các mã mà bạn cung cấp, có vẻ như bạn đã không được khởi tạo myPolygon

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

Hãy chắc chắn rằng bạn khởi Danh mục:

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

Cũng lưu ý rằng nó là tốt nhất để định nghĩa myPolygon như một List (giao diện) và không phải ArrayList (thực hiện).

+0

Điều này vẫn đúng? Tôi không nghĩ như vậy, bởi vì nếu bạn khởi tạo nó như là một 'ArrayList' thì bạn không cần phải xác định một loại ở phía bên kia của đối số nữa. – Ajay

Các vấn đề liên quan