2011-10-07 10 views
5

Sono piuttosto nuovo in Java e mi sto divertendo a capire come risolvere questa eccezione puntatore nullo che mi ha turbato.Le matrici di oggetti Java possono inizializzare gli elementi come valori non nulli?

So dove si verifica il problema e so cos'è un'eccezione di puntatore nullo, ma non ho idea di come far funzionare il mio programma.

Ecco il frammento di codice in cui il problema si sta verificando:

public static void main(String[] args) { 
Scanner input = new Scanner(System.in); 

    Account[] atm = new Account[10]; 

    for (int i = 0; i < 10; i++){ 
     atm[i].setId(i); 
     atm[i].setBalance(100.00); 
    } 

Come ho detto, so che accade perché gli oggetti in atm [] sono nulli, ma non sono sicuro di come risolvere il problema.

Sono sicuro che si tratta di un errore stupido perché quelli sono i tipi di errori che faccio regolarmente, ma qualsiasi aiuto che voi ragazzi potete dare potrebbe rendere la mia giornata.

Grazie!

risposta

8

L'intero array è nullo! ricorda, gli array non vengono mai inizializzati automaticamente in java, a meno che non siano array di ints, float, double o booleans.

Scanner input = new Scanner//System.in.Scanner; 

Account[] atm = new Account[10]; 

for (int i = 0; i < 10; i++){ 
    **atm[i] = new Account();** 
    atm[i].setId(i); 
    atm[i].setBalance(100.00); 
} 

quando si sta dichiarando array che contengono oggetti, leggere come: "Sto creando una matrice che conterrà oggetti 'x'." (Corretto), e quindi procedere a un'istanza di quegli oggetti

... al contrario di ...

"Sto creando una matrice con oggetti 'x' in esso." (errato) poiché non ci sono ancora oggetti lì dentro perché non sono stati creati.

+2

O forse un modo migliore per pensarci: gli array sono * sempre * default- inizializzati in Java, e l'inizializzatore è sempre l'equivalente di 0-filling: 0, 0.0, 'false',' null', etc –

+0

Grazie mille! Essendo la prima pratica con gli array Java che ho avuto, ero completamente all'oscuro di quel piccolo bocconcino! Non lascerò che succeda di nuovo =) – KAM1KAZEKOALA

Problemi correlati