Killian
13-03-2005, 16:27
ho un problema, probabilmente la soluzione è stupida ma non ci arrivo.
Leggendo il listato seguente:
public class Nome_classe {
int corrente = 0;
Nomeclasse_interna[] tr = new Nomeclasse_interna[4];
/** Creates a new instance of Nome_classe */
public Nome_classe() {
popola_tr();
}
public void popola_tr(){
this.tr[0].attributo1="stringa";
......
}
}
dove Nomeclasse_interna è dichiarata nello stesso package di Nome_classe, non ho problemi di compilazione, ma se provo ad eseguire il programma principale, quando creo un'istanza di Nome_classe ottengo un errore nel metodo popola_tr(), del tipo: "Exception in thread "main" java.lang.NullPointerException".
L'errore mi segnala le righe nell'ordine:
- this.tr[0].attributo1="stringa";
- popola_tr();
- Nome_classe asdf = new Nome_classe();
dove la terza è nel main.
Dove sbaglio?
Nomeclasse_interna è dichiarata come segue:
class Nomeclasse_interna {
String attributo1;
...............
}
ed è nello stesso file sorgente di Nome_classe
Leggendo il listato seguente:
public class Nome_classe {
int corrente = 0;
Nomeclasse_interna[] tr = new Nomeclasse_interna[4];
/** Creates a new instance of Nome_classe */
public Nome_classe() {
popola_tr();
}
public void popola_tr(){
this.tr[0].attributo1="stringa";
......
}
}
dove Nomeclasse_interna è dichiarata nello stesso package di Nome_classe, non ho problemi di compilazione, ma se provo ad eseguire il programma principale, quando creo un'istanza di Nome_classe ottengo un errore nel metodo popola_tr(), del tipo: "Exception in thread "main" java.lang.NullPointerException".
L'errore mi segnala le righe nell'ordine:
- this.tr[0].attributo1="stringa";
- popola_tr();
- Nome_classe asdf = new Nome_classe();
dove la terza è nel main.
Dove sbaglio?
Nomeclasse_interna è dichiarata come segue:
class Nomeclasse_interna {
String attributo1;
...............
}
ed è nello stesso file sorgente di Nome_classe