class SomeClass{
static SomeClass(){
}
}
在这里,虽然我们可能会创建不同的名称,但它不应该指向相同的内存位置?类似于用他的名字称呼同一个人,曾经是他的绰号?它还是单身人士吗?
答案 0 :(得分:2)
您无法拥有static
构造函数,因为它的工作是初始化this
实例对象。
在Scala中你可以写
object SomeClass {
}
在类的单例和静态字段之间创建内容。
在Java中定义单例的最简单方法是使用enum
enum SomeClass {
INSTANCE;
}
对SomeClass.INSTANCE
的所有引用都是同一个实例。
答案 1 :(得分:1)
这是创建和发布单例的正确方法,假设您不想使用隐式单例(如enum
):
public SomeClass
{
private static class SingletonHolder
{
public static final SomeClass INSTANCE = new SomeClass();
}
public static SomeClass getInstance()
{
return SingletonHolder.INSTANCE;
}
private SomeClass()
{
}
}