Newsgroup: it.comp.java
Titolo: NullPointerException

Aiuto!!! Cosa vuol dire questo messaggio? 
Exception in thread "main" java.lang.NullPointerException
Grazie per l'aiuto!
Miki

 Aiuto!!! Cosa vuol dire questo messaggio? 
Che da qualche parte hai un Null dove dovrebbe esserci
qualche cosa. Controlla il tuo codice.
Davide
-- 
Posted via Mailgate.ORG Server - 
http://www.Mailgate.ORG

Se arrivi dal C... segmentation fault, o general protection fault, o core
dump...
credo :-)

Birichino wrote:
Nel tuo programma da qualche parte hai passato ad un metodo una variabile 
che è settata a null e quindi non riesce ad usarla.
Controlla bene di aver inizializzato le variabili. Solitamente con 
l'indicazione di una eccezione c'è anche il numero di riga e la classe dove 
è stata sollevata. Usa questa informazione per fare il debug.
Ciao.
-- 
Luca "The Fante" Pertile

Controlla bene di aver inizializzato le variabili. 
//Ecco la chiamata del metodo:
int x = Nodo.trovaCellaDelFiglioSx(contatore);
//Ed ecco il metodo chiamato:
public int trovaCellaDelFiglioSx(int cont) {
 
	// Il problema è alla riga seguente:
	int cellaDelFiglioSx =((Node)v.elementAt(cont)).figlioSx;
	return cellaDelFiglioSx;
}
Ho controllato che la variabile contatore valga zero e non Null. 
L'ho fatto mettendo un System.out.println(contatore) appena prima
della chiamata del metodo. E in effetti mi stampa a video il valore 0
(zero). 
Il problema quindi è che il programma si blocca appena entra nel
codice del metodo, e in particolare alla riga:
int cellaDelFiglioSx =((Node)v.elementAt(c)).figlioSx;
Questo perchè se metto un altro System.out.println(cont) prima della
riga incriminata, mi viene stampato a video sempre lo stesso 0 (zero).
Ma siccome non mi sembrano esserci errori evidenti di sintassi...mi
sto proprio ammattendo!
Miki

 (zero). 
Solo gli oggetti possono essere null, i primitivi no! 
Per cui quello che hai controllato era...l'unica cosa che sicuramente
non ti poteva dare null pointer exception.
Stampa invece il valore di v e di v.elementAt(cont): uno dei due è
null.
ciao
tityrus

tityrus
-------------------------------------------------------------------------------------------
In effetti il vettore viene creato e "riempito" con le istanze
dell'oggetto NODO in un altro metodo. Si vede che facendo cosě il
metodo non veda l'inizializzazione del vettore (e il suo riempimento)
e cosě restituisca il valore Null...
Ma allora mi chiedo: esiste un modo per far vedere, al metodo,
l'inizializzazione del vettore senza dover copiare n volte questo
codice all'interno di tutti i metodi che contengono il vettore?
In questo modo non si avrebbe ridondanza, e il codice sarebbe molto
piů pulito! Grazie...
Miki


Prova ad usare variabili di istanza



In che modo scusa? 

 ha scritto nel messaggio
news:3c8bd3a3...@powernews.libero.it...

prova a dichiarare il vettore fuori dal metodo in cui lo inizializzi ed
assicurati che quest'ultimo si evocato prima di quello in cui l'utilizzi

 assicurati che quest'ultimo si evocato prima di quello in cui l'utilizzi
Ho risolto il problema passando il vettore a tutti i metodi
che lo utilizzavano, ma prima l'ho inizializzato invocando il metodo
che lo inizializzava e lo riempiva.
Grazie di tutto,
Miki
