2012-08-24 56 views
0

可能重複:
Static initializer in JavaJava靜態 - 方法還是字段?

我想知道這是什麼東西靜(抱歉,這是我第一次遇到這樣)一類做或什麼是它的目的。

public class SomeClass{ 

      //this is a static field 
      private static String someStaticStringField; 
      ... //other static fields 

      //what is this? 
      static{ 
       log.debug("Loading config file"); 
       try{ 
         Class cls = Class.forName("package.ClassName"); 
         properties = new Properties(); 

         ... 

       } catch(Exception e){ 
         log.error("Error in loading config file"); 
       } 


      } 

      //this is a static method 
      public static String getSomeStaticStringField(){ 
        return someStaticStringField; 
      } 


    } 

一般來說,靜態{}做了什麼以及它對類的目的是什麼?什麼是正確的稱呼它?它是一個類字段,一個方法或其他東西?謝謝

+1

另請參閱[Java教程](http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html)和靜態初始化塊的部分。 – assylias

+0

靜態字段後面的代碼,是一個靜態初始化塊。請參閱此處:http://docs.oracle.com/javase/tutorial/java/javaOO/initial.html更多詳細信息。 – dan

回答

4

這被稱爲靜態初始化;它是在第一次引用類時運行的(就像靜態變量的任何初始化一樣,除了這允許更好的初始化,因爲你有一個完整的塊)。這不是一種方法也不是一個字段