|
|
|
![]() |
|
Strumenti |
![]() |
#1 | ||
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
[Java] non capisco l'errore
ho un problema, probabilmente la soluzione è stupida ma non ci arrivo.
Leggendo il listato seguente: Quote:
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: Quote:
|
||
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Feb 2005
Città: Roma
Messaggi: 414
|
Prova a cambiare cosi:
Codice:
public class Nome_classe{ int corrente = 0; Nomeclasse_interna[] tr; /** Creates a new instance of Nome_classe */ public Nome_classe() { tr=new Nomeclasse_interna[4] popola_tr(); } public void popola_tr(){ this.tr[0].attributo1="stringa"; ...... } } |
![]() |
![]() |
![]() |
#3 | |
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
stesso problema, l'errore me lo da quando richiamo il metodo
- popola(); Lo so perchè tra - tr=new Nomeclasse_interna[4]; e - popola_tr(); ho inserito una System.out.println("..."); e la riga di testo viene correttamente visualizzata. l'errore dovrebbe essere alla riga - this.tr[0].attributo1="stringa"; visto che è la prima che viene segnalata ![]() il main è banalmente: Quote:
Ultima modifica di Killian : 13-03-2005 alle 20:19. |
|
![]() |
![]() |
![]() |
#4 |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
guarda che con questo:
Codice:
Nomeclasse_interna[] tr = new Nomeclasse_interna[4]; dichiari e istanzi un array di 4 oggetti di classe Nomeclasse_interna, ma gli oggetti all'interno dell'array non li hai mai istanziati ![]() in altre parole this.tr[0] è null quando ci accedi all'interno di popola_tr() |
![]() |
![]() |
![]() |
#5 | |
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
Quote:
Non ho ancora capito come risolvere. Scusa, ma sono ancora un principiante in Java. ![]() |
|
![]() |
![]() |
![]() |
#6 | |
Senior Member
Iscritto dal: Apr 2001
Città: Dundee, Scotland
Messaggi: 467
|
Quote:
Codice:
Nomeclasse_interna[] tr = new Nomeclasse_interna[4]; for (int i=0; i<4; i++) tr[i]=new Nomeclasse_interna; |
|
![]() |
![]() |
![]() |
#7 | |
Senior Member
Iscritto dal: Jan 2001
Città: Milano
Messaggi: 5707
|
Quote:
vedi risposta di MSciglio ![]() un conto e' istanziare l'array, un altro è istanziare ogni oggetto all'interno dello stesso. La seconda operazione non e' effettuata in automatico dalla prima. |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Sep 2002
Città: centro Italia
Messaggi: 1189
|
grazie a tutti
![]() |
![]() |
![]() |
![]() |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 16:25.