在您阅读我的问题之前,请知道我的英文不好
public Name()
{
ID = 1;
loadOptions();
}
private void loadOptions
{
// code
if (as[0].equals("ID"))
{
ID = Integer.parseInt(as[1]);
}
// more code
}
static
{
ID1 = ID;
}
ID1为0,但我希望它是Integer.parseInt(as[1]);
...请帮助我!
答案 0 :(得分:0)
有两种方法可以实现这一目标:
答案 1 :(得分:0)
我认为你可能缺乏该语言的一些基础知识。
静态初始化块仅在第一次引用类时运行。
每次实例化类的实例时都会运行构造函数。
我假设ID1是一个静态变量,你试图在构造函数有机会执行之前运行的静态区域初始化它。
仅仅因为代码按特定顺序编写并不意味着它按该顺序运行。
假设你真的想将ID1设置为任何ID,你必须这样做
public Name()
{
ID = 1;
loadOptions();
ID1 = ID;
}
当然,你没有构造Name的实例,ID1在创建实例之前将保持为0