2015-09-29 13 views
6

Cosa significa in realtà utilizzare parentesi tra parentesi durante l'inizializzazione ad es. nuova lista?Parentesi nella staffa in Java

new ArrayList<String>() 
{ 
    { 
     add("A"); 
    } 
}; 

Significa che dopo aver creato un nuovo metodo di riferimento sta invocando?

risposta

5

Questo è un idioma intelligente per la creazione e l'inizializzazione di una raccolta.

Quello che sta effettivamente accadendo è che si sta creando un'istanza di una sottoclasse anonima di ArrayList che ha un blocco di inizializzazione dell'istanza che chiama add sull'istanza dell'elenco per popolarlo. L'interno {...} è il blocco di inizializzazione dell'istanza.

Un trucco simile può essere utilizzato per creare mappe pre-inizializzate.

Problemi correlati