2013-06-05 5 views
5

В Android примере класса Theres этот метод:статический метод без имени

static {   
    addItem(...); 
} 

Когда я ссылаться на класс, элементы действительно добавлен. Я никогда не видел такого метода, как. как это называется, и б. Я полагаю, что этот метод вызывается всякий раз, когда ссылается на класс (или когда он ссылается в первый раз)?

ответ

1

Да это статический блок инициализации, и он будет загружен только тогда, когда класс загружается как сказал Фуад. Если вы хотите выполнить функциональность внутри блока Static, когда хотите, вы можете вместо этого добавить частный статический метод. Посмотрите here

9

Это называется static initializer, и код внутри него вызывается только один раз при загрузке класса.

0

Это не метод. Это static initializer. Это способ статической работы над загрузкой класса, например, для создания некоторых данных.

Рассмотрим это:

static List<String> neverChangingNames; 

static { 
    neverChangingNames = new ArrayList<String>(); 
    neverChangingNames.add("Thomas"); 
    neverChangingNames.add("Derek"); 
    neverChangingNames.add("Michael"); 
    neverChangingNames = Collections.unmodifiableList(neverChangingNames); 
} 
Смежные вопросы