2013-01-09 61 views
0

我不太了解以下static块。我在使用方法和变量时了解static关键字,但我不确切知道下面的代码中静态关键字的用途。android中的static关键字

static 
    { 
     sURIMatcher.addURI("contacts", "people", PEOPLE); 
     sURIMatcher.addURI("contacts", "people/#", PEOPLE_ID); 
     sURIMatcher.addURI("contacts", "people/#/phones", PEOPLE_PHONES); 
     sURIMatcher.addURI("contacts", "people/#/phones/#", PEOPLE_PHONES_ID); 
     sURIMatcher.addURI("contacts", "people/#/contact_methods", PEOPLE_CONTACTMETHODS); 
     sURIMatcher.addURI("contacts", "people/#/contact_methods/#", PEOPLE_CONTACTMETHODS_ID); 
     sURIMatcher.addURI("contacts", "deleted_people", DELETED_PEOPLE); 
     sURIMatcher.addURI("contacts", "phones", PHONES); 
     sURIMatcher.addURI("contacts", "phones/filter/*", PHONES_FILTER); 
     sURIMatcher.addURI("contacts", "phones/#", PHONES_ID); 
     sURIMatcher.addURI("contacts", "contact_methods", CONTACTMETHODS); 
     sURIMatcher.addURI("contacts", "contact_methods/#", CONTACTMETHODS_ID); 
     sURIMatcher.addURI("call_log", "calls", CALLS); 
     sURIMatcher.addURI("call_log", "calls/filter/*", CALLS_FILTER); 
     sURIMatcher.addURI("call_log", "calls/#", CALLS_ID); 
    } 

回答

7

这被称为Java静态初始化块。这将在类加载时执行。红色这个oracle tutorial

静态初始化器可用于初始化类的类变量。

+0

非常感谢,非常有帮助。 – fkaufusi

+0

@fkaufusi:不客气。祝你好运。 – kosa

5

Java Language Specification

在类声明的静态初始化当类是 执行初始化(§12.4.2)。与类 变量(第8.3.2节)的任何字段初始值设定项一起,可以使用静态初始值设定项来初始化类的类变量 。

StaticInitializer: 
    static Block