2010-10-16 18 views
16

Il mio codice lancia una NullPointerException, anche se l'oggetto sembra esistere correttamente.Java NullPointerException quando si aggiunge 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); 

Perché succede questo?

risposta

43

in base alle parti del codice che hai fornito, sembra che non si è inizializzato myPolygon

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

Assicurarsi di inizializzare l'elenco:

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

anche notare che è meglio definisci myPolygon come una lista (interfaccia) e non come ArrayList (implementazione).

+0

È ancora vero? Io non la penso così, perché se lo inizializzi come un 'ArrayList', non avrai più bisogno di specificare un tipo sull'altro lato dell'argomento. – Ajay

Problemi correlati