2013-06-05 24 views
5

在一個Android示例類的靜態方法那裏有這個方法:沒有名字

static {   
    addItem(...); 
} 

當我引用類中,項目確實加入。我從來沒有見過這樣的方法,a。這是如何被稱爲和b。我想這個方法在類被引用(或者第一次被引用)時被調用?

回答

1

是的,這是靜態初始化塊,它只會在類加載的福阿德說加載。如果您想要在靜態塊內執行功能,則可以添加私有靜態方法。看看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); 
}