|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
[JAVA] nullPointerException : aiuto
public class pippo {
public pippo(){ int[][] salve ; salve = new int[][] {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}}; } public void run(){ if(salve[1][2] == num)..... } ......} questo è una parte di codice del programma.in compilazione nessun problema ma quando lo vado ad avviare mi viene dato un errore nullPointerExcepetion alla riga dell'if all'interno del metodo run del thread.premetto che nel medoto main ho già provveduto ad istanziare un oggetto di tipo pippo e quindi il costruttore mi è partito. ma il problema è che ora alla riga dell'if mi viene dato errore in esecuzione di tipo nullPointerException.non riesco proprio a capire il problema!! |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Jul 1999
Città: Torino
Messaggi: 2221
|
l'array salve viene usato prima di essere istanziato...Inizializzalo in fase di dichiarazione...
|
|
|
|
|
|
#3 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
ERRATA CORRIGE: avevo sbagliato a scrivere.ecco il codice esatto
public class pippo { int[][] salve; public pippo(){ salve = new int[][] {{1,2,3,4}, {2,3,4,5}, {3,4,5,6}}; } public void run(){ if(salve[1][2] == num)..... } ......} |
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
ci riporti il messaggio esatto?
il codice sembra correto |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
Quote:
|
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
ecco il sorgente! rinominalo in .java
|
|
|
|
|
|
#7 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
il problema e' che quando chiami il costruttore con parametri quello vuoto (che istanzia gli array tra cui "percorso" ) non viene chiamato.
devi allocare "percorso" anche nel costruttore con parametri |
|
|
|
|
|
#8 | |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
Quote:
|
|
|
|
|
|
|
#9 | |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
Quote:
|
|
|
|
|
|
|
#10 | |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
eh no, prima lo crei correttamente con il costruttore vuoto, poi a un certo punto vedo questa chiamata: camminoMinimo ameba = new camminoMinimo(tmp,tmp1,i,tmp2); da questo punto in poi camminoMinimo e' un NUOVO oggetto che hai creato usando il costruttore con parametri, con "percorso" quindi non istanziato |
|
|
|
|
|
|
#11 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
avevo immaginato il prob.grazie :-)
dato che ci sono ti chiedo qualche altra info.allora io non voglio che automaticamente vengano caricati gli array da me creati.a seconda del valore di una variabile (questo procedimento nn è stato ancora inserito ma la scrittura e organizzazione del programma è stata fatta con l'ipotesi di aggiungere tale funzione) il programma decide se inizializzare le variabili ai valori scritti in camminoMinimo() oppure se metterci valori a caso,quindi non voglio che le matrici vengano x forza istanziate con quei valori e quindi nn le vorrei inserire x forza nel costruttore camminoMinimo(int....).secondo te come posso fare per risolvere il prob del post e per mantenere la compatibilità con tale futuro ampliamento? |
|
|
|
|
|
#12 |
|
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
non sono sicuro di avere capito il problema.
cmq potresti fare un costruttore che prende in ingresso un boolean che indica se istanziare o meno gli array interni (quello che e' ora il costruttore vuoto). il costruttore che invece prende i paramentri come prima cosa dovrebbe chiamare il costruttore vuoto (passando un false) e poi valorizzare gli oggeti che vengono passati come argomento. |
|
|
|
|
|
#13 | |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
Quote:
ora mi è venuta in mente una cosa.poi ti farò sapere.grazie mille |
|
|
|
|
|
|
#14 |
|
Senior Member
Iscritto dal: Dec 2001
Messaggi: 2514
|
il prob che mi dava il programma era che le matrici percorso,grafo,etc venivano istanziate da 1 oggetto e quindi non venivano viste dall'altro.
a questo punto le ho dichiarate static così almeno le creo solo una volta e vengono viste da tutte le classi che vi accedono.ora sembra che vada anche se devo fare qualche test x vedere se funziona tutto. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 08:24.



















