2011-03-08 10 views
15

Obtengo un NullPointerException en el método modelData.add(i, es). Sé por depuración que es no es null. Estoy realmente confundido, gracias.NullPointerException en list.add

public class EventTableModel extends AbstractTableModel { 

    //private int rowCount = 0; 
    protected List<EventSeat> modelData; 
    private static final int COLUMN_COUNT = 3; 
    private Event e; 
    Event j = GUIpos.m; 
    int i = 1; 

public EventTableModel(Event e) { 
    this.e = e; 
    try { 
     System.out.println(modelData); 
     for (EventSeat es : e.getEventSeats()) { 
      modelData.add(i, es); 
      i++; 
     } 
    } catch (DataException ex) { 
     Logger.getLogger(EventTableModel.class.getName()).log(Level.SEVERE, null, ex); 
    } 

} 
+0

dónde viene 'modelData' que éste se inicia? –

+0

¿Es 'modelData' nulo? –

+1

¿Dónde se inicializa 'modelData'? ¿No debería haber un 'modelData = new ArrayList ();' en algún lugar? – srgerg

Respuesta

40

Debe inicializar una lista para no obtener el NullPointerException.

protected List<EventSeat> modelData = new ArrayList<EventSeat>(); 
+0

guau, ¡eso fue fácil! – novicePrgrmr

7

Trate

protected List<EventSeat> modelData = new ArrayList<EventSeat>(); 
+0

Puntos de bonificación si cambia esto para que coincida con las otras dos respuestas; No creo que puedas instanciar una 'Lista' como esa. – phooji

5

En el primer vistazo, parece que ModelData no ha creado una instancia. Me gustaría crear una instancia del ModelData como:

protected List<EventSeat> modelData = new ArrayList<EventSeat>(); 

FYI .. En Java 7 habrá una nueva sintaxis se puede usar-someObject?.doSomething();

+0

No creo que e.getEventSeats() devuelva nulo (o devuelva un iterador que contenga un elemento nulll). Si ese fuera el caso, el código terminaría al comienzo del 'for'. – phooji

+0

Sure ... escribió la solución a toda prisa. Gracias por señalar esto. –

Cuestiones relacionadas