2013-06-05 15 views
5

In una classe di esempio, Android theres questo metodo:Metodo statico senza un nome

static {   
    addItem(...); 
} 

Quando riferimento alla classe, gli elementi sono infatti aggiunti. Non ho mai visto un metodo come questo, a. come si chiama e b. Suppongo che questo metodo venga chiamato ogni volta che la classe viene referenziata (o la prima volta che viene referenziata)?

risposta

1

Sì, questo è blocco di inizializzazione statico e sarà caricato solo quando la classe sta caricando come ha detto Fouad. Se si desidera eseguire la funzionalità all'interno del blocco statico quando si desidera, è possibile aggiungere invece un metodo statico privato. Date un'occhiata here

9

Questo è chiamato static initializer e il codice al suo interno viene richiamato una sola volta al caricamento della classe.

0

Questo non è un metodo. È un static initializer. È un modo per fare un lavoro statico, sul carico della classe, come impostare alcuni dati.

Considerate questo:

static List<String> neverChangingNames; 

static { 
    neverChangingNames = new ArrayList<String>(); 
    neverChangingNames.add("Thomas"); 
    neverChangingNames.add("Derek"); 
    neverChangingNames.add("Michael"); 
    neverChangingNames = Collections.unmodifiableList(neverChangingNames); 
} 
Problemi correlati