【问题标题】:How to gain Static Constructor's functionality in JAVA?如何在 JAVA 中获得静态构造函数的功能?
【发布时间】:2015-05-24 20:02:20
【问题描述】:

我正在学习 C# 和 JAVA,我在 C# 中找到了 Static Constructor,它用于初始化任何静态数据,或执行只需要执行一次的特定操作。在创建第一个实例或引用任何静态成员之前自动调用它。

例如:

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 中获得相同的功能有什么办法吗???

【问题讨论】:

    标签: java constructor static static-constructor


    【解决方案1】:

    你可以像这样使用静态初始化块 -

    class SimpleClass
    {
        static{
    
        }
    
    }  
    

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

    您可以查看link 了解更多详情。

    更新: static 初始化块仅在类加载到内存时调用。

    【讨论】:

      【解决方案2】:

      你有静态初始化块。

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

      【讨论】:

      • @BilalMaqsood 会在类初始化的时候执行一次。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-17
      • 2020-10-26
      • 1970-01-01
      相关资源
      最近更新 更多