PDA

View Full Version : [Java] Problema con NullPointerException


amed13m
15-06-2015, 22:27
Salve a tutti.
Sto realizzando un programma per gli scacchi 1vs1. Mi dà questo errore:

Exception in thread "main" java.lang.NullPointerException
at scacchi.scacchiera.ElencoPezzi.<init>(ElencoPezzi.java:36)
at scacchi.main.NuovaPartita.<init>(NuovaPartita.java:18)
at scacchi.main.Scacchi.main(Scacchi.java:7)

Il codice incriminato è questo:
this.listaPezzi = new Pezzo[32];
this.listaPezzi[i].setCase(lettereColonne[i], 1, lettereColonne[i], 1);

Ho fatto una prova, e il seguente codice, invece, funziona:
Pezzo provaPezzo = new Pezzo();
provaPezzo.setCase(lettereColonne[i], 1, lettereColonne[i], 1);

Quindi, a quanto ho capito, il problema è che non sto operando correttamente con l'array.
Help! :-)

Amsirak
16-06-2015, 05:07
Il problema è che quando inizializzi un array in quel modo, riempie 32 spazi di null, e non di new Pezzo().
Significa che this.lista pezzi[n] == null, fino a che non riempi l'array di oggetti.

Puoi usare un ciclo for in cui ad ogni iterazione assegni ad ogni elemento dell'array un nuovo Pezzo.

per ogni elemento dell'array
this.listaPezzi[n] = new Pezzo();

A questo punto potrai chiamare tranquillamente this.listaPezzi[i].setCase() su ogni oggetto.

amed13m
16-06-2015, 09:35
Perfetto! Grazie, gentilissimo :-)