2012-03-12 47 views

回答

7

不。靜態初始化器在類加載並被初始化後立即被調用。

+0

的聚合知識JDK5第12.4章中的JLS是否有不同的狀態?一旦類被初始化,就會調用靜態初始化器。只加載一個類,不會初始化它。 – blackdrag 2012-11-19 09:29:04

+0

啊,是的,我會修改措辭。無論如何,使用反射都:) – Bozho 2012-11-19 12:44:28

0

添加我的答案,因爲我覺得Bozho答案太短現在;)

反射可以初始化類,僅載入類不初始化。例如,請求來自靜態字段的值確實會在獲取實際值之前調用靜態初始化程序。只有獲得領域通常不會。因此,如果你的反射代碼導致靜態初始化器被執行,並且你確實需要這樣做,那麼就沒有辦法阻止這些初始化器被調用。如果你想避免他們被叫,你必須改變你所做的反射。

相關問題