Se io dichiaro un String
matrice:String array di inizializzazione in Java
String names[] = new String[3];
Allora perché non possiamo assegnare valori alla matrice dichiarato sopra in questo modo:
names = {"Ankit","Bohra","Xyz"};
Se io dichiaro un String
matrice:String array di inizializzazione in Java
String names[] = new String[3];
Allora perché non possiamo assegnare valori alla matrice dichiarato sopra in questo modo:
names = {"Ankit","Bohra","Xyz"};
è possibile effettuare le seguenti durante la dichiarazione:
String names[] = {"Ankit","Bohra","Xyz"};
E se si desidera farlo da qualche parte dopo la dichiarazione:
String names[];
names = new String[] {"Ankit","Bohra","Xyz"};
Come ho chiesto perché non è possibile inizializzarlo utilizzando le parentesi graffe dopo aver dichiarato come array di 3. –
@AnkitBohra. Questo è ciò che sta facendo il secondo frammento. –
@AnkitBohra perché '{" x "," y "," z "}' non è un'istanza di array. Mentre 'new String [] {" x "," y "," z "}' è. – zEro
names[] = {"Ankit","Bohra","Xyz"};
è un inizializzatore e utilizzati esclusivamente quando si costruisce o crea un oggetto array nuovo. Non può essere utilizzato per set la matrice. Si può usare quando dichiarato come:
String[] names= {"Ankit","Bohra","Xyz"};
Si può anche utilizzare:
names=new String[] {"Ankit","Bohra","Xyz"};
come fa la differenza quando dobbiamo usare - ** String [] names = {" Ankit "," Bohra "," Xyz "}; ** e quando ** names = new String [] {" Ankit "," Bohra "," Xyz "}; **, qualsiasi caso d'uso in cui si adatta. grazie in anticipo @ hexafraction. –
@Avenger Nothing. Entrambi fanno la stessa cosa, se ricordo bene. – hexafraction
Vuoi dire come:
String names[] = {"Ankit","Bohra","Xyz"};
Ma si può fare solo nella stessa istruzione quando si dichiararlo
Non è così, volevo sapere perché non possiamo eseguire l'inizializzazione delle parentesi graffe dopo aver dichiarato qualsiasi array. –
Perché la lingua è definita in questo modo, purtroppo. – texasbruce
Non è solo una sintassi Java valida. Si può fare
names = new String[] {"Ankit","Bohra","Xyz"};
Prima di tutto, questo non ha niente a che fare con String
, si tratta di array .. e che anche specificamente circa l'inizializzazione degli array dichiarativa.
Come discusso da tutti in quasi ogni risposta qui, è possibile, pur dichiarando una variabile, utilizzare:
String names[] = {"x","y","z"};
Tuttavia, la dichiarazione posta, se si desidera assegnare un'istanza di un array:
names = new String[] {"a","b","c"};
per quanto ne so, la sintassi dichiarazione è solo uno zucchero sintattico e non è più applicabile quando assegnare importare valori in variabili perché quando vengono assegnati i valori è necessario creare un'istanza in modo corretto.
Tuttavia, se ci chiedi perché è così? Bene ... buona fortuna per avere una risposta a questo. A meno che qualcuno del comitato Java non risponda a questa domanda o ci sia una documentazione esplicita che cita il suddetto zucchero sintattico .
"le costanti di matrice possono essere utilizzate solo negli inizializzatori"; non è abbastanza questa ragione? A meno che non stiate cercando un tipo di "intento legislativo"! – zEro