我最近碰到的一段代碼:Java非靜態字段默認值?
public class SomeClass
{
private Logger logger = LoggerFactory.getInstance().getLogger(SomeClass.class);
private int whatever;
// .. Rest of the class definition
}
,被風吹走!這段代碼編譯和運行非常漂亮!我只看到了在類變量(靜態)上執行的這種賦值。我的印象是,爲了給實例變量賦值,人們必須在方法內部這樣做。錯誤!
我的問題:這是一種覆蓋Java默認值類型的方法嗎?例如,在上面的示例中,1ogger
字段通常會分配一個值null
,直到由構造函數/設置器賦值。其他類型,如基元,都有其自己的內置默認值,如booleans
,默認爲false
。
這只是讓你重寫內置默認值的Java方法嗎?否則,這是什麼,它爲什麼編譯?!?
在此先感謝!