2013-06-05 8 views
5

W Android przykład klasy tam tą metodą:statyczna metoda bez nazwy

static {   
    addItem(...); 
} 

Kiedy odwołać klasę, elementy są rzeczywiście dodaną. Nigdy nie widziałem takiej metody, a. jak to się nazywa i b. Przypuszczam, że ta metoda jest wywoływana za każdym razem, gdy odwołuje się do klasy (lub po raz pierwszy odwołuje się)?

Odpowiedz

1

Tak to jest statyczny blok inicjalizacji i zostanie on załadowany tylko wtedy, gdy klasa jest ładowanie jak Fouad powiedział. Jeśli chcesz wykonać funkcję wewnątrz bloku statycznego, możesz zamiast tego dodać prywatną metodę statyczną. Spójrz na: here

9

Nazywa się to static initializer, a kod w środku wywoływany jest tylko jeden raz podczas ładowania klasy.

0

To nie jest metoda. Jest to static initializer. Jest to sposób statycznego wykonywania pewnej pracy na obciążeniu klasowym, na przykład podczas konfigurowania niektórych danych.

Rozważ to:

static List<String> neverChangingNames; 

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