私有靜態方法的靜態變量可以與私有靜態方法或用靜塊進行初始化。兩者之間有什麼細微差別?有什麼情況我不能使用靜態方法來初始化靜態成員?我發現後者更具可讀性。靜塊VS靜態成員初始化
靜塊初始化:
private static int NUM_ITER;
static {
// Operations
NUM_ITER = //val from above operations.
}
私人靜態方法初始化:
private static int NUM_ITER = calculateNumIter();
// Some method comment on how we are calculating.
private static int calculateNumIter()
{
// Operations.
return //value_from_operations.
}
我喜歡第二之一,因爲它是更具有可讀性。有什麼情況我只能使用第一個(靜態塊)?
什麼是初始化靜態成員(決賽以及變量)的最佳編碼約定/設計?即使從這個thread我學到私人靜態方法有優勢的靜態塊。
感謝,
自從我使用版本2以來,我已經爲靜態塊遺忘了幾次靜態;)。 – Stefan 2012-07-23 20:34:21