2012-02-02 22 views
9

saluti al seguente codice:parentesi graffe quando definire matrice

int[] to = new int[] { text }; 

Capisco che cerca di definire una serie di numeri interi, ma che cosa fa il parentesi graffe faccio nella definizione del campo?

+0

Sì, sembra che tu stia in modo anonimo sottoclasse un array, ma è solo un'inizializzazione –

+0

Voglio dire, se viene visto 5.5k volte, fornisce un contenuto di qualità decente, suppongo? Ho cercato su google "parentesi graffe java array" e ho capito. Meglio che setacciare i brutti documenti Java. – Sticky

risposta

7

Le parentesi graffe contengono valori per popolare la matrice.

+0

Quindi, attualmente c'è solo un elemento che è 'testo', giusto? –

+1

@ Leem.fin, Sì, se 'testo' è un int - ci sarà un array 'a' creato con un elemento che è 'testo'. – Egor

0

parentesi graffe detto al compilatore i valori dell'array

+0

Quindi, attualmente c'è solo un elemento che è 'testo', giusto? –

2

Questa sintassi consente di definire il contenuto di una matrice e viene spesso indicato come un array letterale.

In questo contesto questo può effettivamente essere semplificata in:

int[] to = { 1, 2, 7, etc. }; 

calcolata new int[] prima che sia richiesto solo quando non fa parte di un'assegnazione, qualcosa come:

someFunction(new int[]{1, 3, 5}); 
12

Questo è solo un collegamento codice per creare un array con elementi iniziali, i seguenti (che sono uguali):

int[] to = new int[] { text }; 
    int[] to = { text }; 

possono essere sostituiti con

int[] to = new int[1]; 
    to[0] = text; 

Spero che questo aiuti.

+0

Dopo 4 anni di sviluppo Java, sto solo scoprendo questa sintassi ora. Non capisco perché non viene usato di più. È molto più semplice e più sexy del modo in cui viene mostrato in tutti i documenti - dichiarazione, quindi manualmente ogni elemento nell'array. –

0

Come detto SLaks, le parentesi graffe rappresentano un modo in cui Java indica un set. È possibile definire il contenuto dell'array utilizzando questo metodo, ma ogni elemento definito deve essere dello stesso tipo dell'array.

Problemi correlati