2015-01-13 105 views
1

我無法理解Enum如何用於線程安全單例例程。 所以讓我們說我有一個我想做單身的A類。我如何使用Enum做到這一點?我遇到了類似下面的代碼的建議,但並不真正能夠理解。在下面我應該用A singleObj = new A();替換INSTANCE嗎?使用枚舉的線程安全單例程

此外,究竟應該A類看起來像在什麼事情,我應該好好照顧有..例如:使構造私人等

public enum EasySingleton{ 
    INSTANCE; 
} 

回答

2

與下面將我替換INSTANCE A singleObj = new A();

你不知道。您可以使用:

EasySingleton instance = EasySingleton.INSTANCE; 

你寫的單身就像一個普通的類,你要等什麼方法 - 但沒有公共的構造函數(這是不是在枚舉有效反正)。

+0

謝謝@Jon。但我仍然沒有得到它。那麼這是否意味着enumn EasySingleton本身就是我的單身類? – Walt

+0

@Walt:是的,確切的。這是一個單例,因爲只有一個有效值('INSTANCE')。你仍然可以使它實現接口等。 –

+0

謝謝喬恩。感謝您對我的耐心等待。不用說,我是編碼世界的新手。 :) – Walt