今天看了一下java設計模式的單例模式,在懶漢式中一開始聲明的類的實例化對象為什么只用private static 聲明了而沒有加final關鍵字?在餓漢式中聲明實例是使用了private static final修飾
7 回答

12345678_0001
TA貢獻1802條經驗 獲得超5個贊
聲明為final的變量,必須在類加載完成時已經賦值,?是什么意思呢?
就是,如果你是final非static成員,必須在構造器、代碼塊、或者直接定義賦值;
如果是final static 成員變量,必須直接賦值 或者在 靜態代碼塊中賦值。
然而直接賦值 或 靜態代碼塊中賦值 就變成餓漢模式了,
所以懶漢模式中,不能用final修飾

瀟瀟雨雨
TA貢獻1833條經驗 獲得超4個贊
用餓漢式實現時,
private static final Singleton instance = new Singleton();
在聲明時需要直接創建實例。
用懶漢式實現時,
private static Singleton instance;
聲明時不需要直接創建對象,但這兩種在聲明的時候為什么一個用了final修飾一個沒用?
添加回答
舉報
0/150
提交
取消