我创建了一个包含一堆属性值的类。 为了初始化该类,我必须调用一些静态方法“configure()”,该方法从 XML 文件对其进行配置。
该类应该用于存储一些数据,以便我可以编写
PropClass.GetMyProperty();
我从主程序中的静态 block 调用configure()
,这样我就可以在任何地方使用它
但是
如果我将其他类的静态常量成员设置为“PropClass”中的值,则会得到 null,
class SomeClass {
static int myProp = PropClass.GetMyProperty();
}
这可能是因为该表达式是在调用配置之前计算的。 我该如何解决这个问题?
如何强制首先执行对 configure()
的调用?
谢谢
最佳答案
您可以使用静态代码块来做到这一点
static {
configure();
}
静态初始化 block 的语法?剩下的就是关键字 static 和一对匹配的花括号,其中包含加载类时要执行的代码。 taken from here
关于java - Java中控制类加载顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/741512/