如何在JAVA中实现静态构造函数的功能?

6

我正在学习C#和JAVA,我发现C#中有一个名为静态构造函数的东西,它用于初始化任何静态数据或执行仅需执行一次的特定操作。在创建第一个实例或引用任何静态成员之前,它会自动调用。

例如:

class SimpleClass
{
    // Static variable that must be initialized at run time. 
    static readonly long baseline;

    // Static constructor is called at most one time, before any 
    // instance constructor is invoked or member is accessed. 
    static SimpleClass()
    {
        baseline = DateTime.Now.Ticks;
    }
}

我有个问题,就是我如何在JAVA中获得相同的功能?是否有任何方法?
2个回答

8
您可以像这样使用静态初始化块 -
class SimpleClass
{
    static{

    }

}  

无论创建多少个该类型的对象,静态块仅被调用一次。

您可以参考此链接了解更多细节。

更新: 当类被加载到内存中时,才会调用static初始化块。


7

您有一个静态初始化块。

static final long baseline;
static {
    baseline = ...
}

@BilalMaqsood 当类被初始化时,它将被执行一次。 - Eran

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接