2015-01-13 123 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