2010-10-16 15 views
16

Mi código arroja una NullPointerException, aunque el objeto parece existir correctamente.Java NullPointerException al agregar a 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); 

¿Por qué sucede esto?

Respuesta

43

basado en las partes del código que ya ha proporcionado, parece que no se ha inicializado myPolygon

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

Asegúrese de inicializar la lista:

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

También tenga en cuenta que es la mejor manera de defina myPolygon como una lista (interfaz) y no como una lista de arreglos (implementación).

+0

¿Sigue siendo así? No lo creo, porque si lo inicializa como una 'ArrayList', ya no necesita especificar un tipo del otro lado del argumento. – Ajay

Cuestiones relacionadas