我们可以将构造函数声明为静态以生成一个单例类吗?JAVA
在这里,虽然我们可以创建不同的名称,但它不应该引用相同的内存位置吗?类似于一次叫同一个人的名字,一次叫他的昵称?它仍然是一个单例类吗?您不能有一个静态构造函数,因为它的工作是初始化一个this实例对象 在Scala中,您可以编写我们可以将构造函数声明为静态以生成一个单例类吗?JAVA,java,oop,singleton,Java,Oop,Singleton,在这里,虽然我们可以创建不同的名称,但它不应该引用相同的内存位置吗?类似于一次叫同一个人的名字,一次叫他的昵称?它仍然是一个单例类吗?您不能有一个静态构造函数,因为它的工作是初始化一个this实例对象 在Scala中,您可以编写 class SomeClass{ static SomeClass(){ } } 在类的单例字段和静态字段之间创建一些内容 在Java中定义单例的最简单方法是使用枚举 对SomeClass.INSTANCE的所有引用都将是同一个实例。这是创建和发布单例
class SomeClass{
static SomeClass(){
}
}
在类的单例字段和静态字段之间创建一些内容
在Java中定义单例的最简单方法是使用枚举
对SomeClass.INSTANCE的所有引用都将是同一个实例。这是创建和发布单例的正确方法,假设您不想使用像枚举这样的隐式单例:
这个编译吗?不…使构造函数私有化静态构造函数没有意义。为什么这会使这个物体成为一个单体呢?不,我知道问题就在那里。我正在考虑另一种方法。静态构造函数初始值设定项看起来像这样的静态{/*do stuff*/}
object SomeClass {
}
enum SomeClass {
INSTANCE;
}
public SomeClass
{
private static class SingletonHolder
{
public static final SomeClass INSTANCE = new SomeClass();
}
public static SomeClass getInstance()
{
return SingletonHolder.INSTANCE;
}
private SomeClass()
{
}
}