如何在 JAVA 中获得 Static Constructor 的功能?
How to gain Static Constructor's functionality in JAVA?
我正在学习 C# 并且 JAVA 我发现 Static Constructor
在 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 中获得相同的功能,有什么办法吗???
您有静态初始化程序块。
static final long baseline;
static {
baseline = ...
}
您可以像这样使用静态初始化块 -
class SimpleClass
{
static{
}
}
无论创建了多少该类型的对象,静态块只会被调用一次。
您可能会看到此 link 以了解更多详细信息。
更新: static
初始化块仅在 class 加载到内存中时调用。
我正在学习 C# 并且 JAVA 我发现 Static Constructor
在 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 中获得相同的功能,有什么办法吗???
您有静态初始化程序块。
static final long baseline;
static {
baseline = ...
}
您可以像这样使用静态初始化块 -
class SimpleClass
{
static{
}
}
无论创建了多少该类型的对象,静态块只会被调用一次。
您可能会看到此 link 以了解更多详细信息。
更新: static
初始化块仅在 class 加载到内存中时调用。