Newsgroup: it.comp.java
Titolo: NullPointerException

Ciao a tutti,
ho completato un programma composto di varie classi, ma in fase di
esecuzione mi si verifica il seguente errore:
Exception in thread "main" java.lang.NullPointerException
        at Studente.toString(Studente.java:199)
        at Lista.showList(Lista.java:95)
        at Archivio.main(Archivio.java:39)
Già in precedenza mi si verificavano errori del genere e sono riuscito a
risolverli modificando qualcosa nel codice, ma in questo caso è ore che
tento di capire cos'è sbagliato nel metodo toString. Vi posto il codice del
metodo (esamiSostenuti è un Vector contenente oggetti Esame:
--------------------------------------------------------
 public String toString()
 {
  String s = null;
  String s1 = null; // stringa che rappresenta gli esami nel vettore
  String temp = null;
  Esame e = new Esame();
  for (int i=0; i<esamiSostenuti.size(); i++)
  {
   e = (Esame)(esamiSostenuti.elementAt(i));
   s1 = temp + e.toString() + "\n";
   temp = s1;
  }
  s = super.toString() + "\n" + numeroMatricola + "\n" + annoImmatricolaz +
"\n" +
   esamiSostenuti.size() + "\n" + s1;
  return s;
 }
Io non riesco a venirne a capo... :-(
Se mi potete dare un consiglio su cosa devo controllare in caso di eccezioni
di questo tipo mi fareste un grande favore! Grazie!
Voivod


Tipicamente il codice che si trova al numero di linea indicato dall'eccezione, ovvero nel
particolare caso la linea 199 di Studente.java
Ciao,
    Bruno.
P.S.
Una volta risolto questo problema (ma prima risolvilo, in modo da capire) passa all'uso di
StringBuffer in vece di concatenazioni di stringhe.
-- 
| Bruno Bossola 
| A Java Software Engineer :-)
| 
http://digilander.iol.it/bbossola
|
| Membro del JUG Torino - 
http://www.jugtorino.it
| 

         at Studente.toString(Studente.java:199)
Se ci dici qual è la riga 199 del codice che ci hai postato, la risolviamo
in 4 e 4 8 ;)
Giuseppe

 wrote in message
news:b4l3i3$29vp$1...@newsreader1.mclink.it...

Ops... :)
La riga incriminata è questa:
s1 = temp + e.toString() + "\n";
Purtroppo anche seguendo il consiglio di Bruno nel post sotto,
inizializzando le variabili di tipo String a "" (stringa vuota) invece che a
null il problema rimane uguale...
Voivod


Sorry, mai detto questo, meglio se rileggi il post: ho indicato come un sicuro errore il
fatto che temp al primo giro fosse a null, ma non era l'unico.
Il problema ora e' che il reference "e" di esame, assegnato prelevandolo dal vettore, e'
null, ovvero, il vettore non contiene l'elemento i-esimo: riprova e controlla.
FYI, inizializzare la variabile "e" non serve ad una cippa :-)
Ciao,
    Bruno.


    s1 = temp + e.toString() + "\n";
Mi son sbagliato ?
- Dario

>}
il reference "e" è null, altrimenti non si spiega
Ciao
Giuseppe

> fatto che temp al primo giro fosse a null, ma non era l'unico.
E' un errore logico, ma alla VM non interessa, lo casta a "null", avevo un
dubbio fugato in questi secondi :)
Ciao
Giuseppe

Posta anche i sorgenti... si fa prima :-)

 Voivod
-- 
Saluti, 
    by Enri'S
                        --- Linux Powered ---

Sono riuscito a venirne a capo...
Il problema stava in effetti nel vettore.
Grazie a tutti, in particolare Bruno e No_Name per i preziosi consigli! :-)
Voivod