2010-10-16 2 views
16

Мой код бросает исключение NullPointerException, хотя объект, кажется, правильно существует.Java NullPointerException при добавлении в 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); 

Почему это происходит?

ответ

43

на основе частей кода, при условии, похоже, вы не инициализируется myPolygon

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

Убедитесь, что вы инициализировать список:

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

Также обратите внимание, что это лучше определить myPolygon как список (интерфейс), а не ArrayList (реализация).

+0

Это все еще так? Я так не думаю, потому что если вы инициализируете его как «ArrayList», вам больше не нужно указывать тип на другой стороне аргумента. – Ajay

Смежные вопросы