Java Int从公共到静态

Java Int从公共到静态,java,static,public,Java,Static,Public,在你读我的问题之前,先知道我的英语不好 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.parseIn

在你读我的问题之前,先知道我的英语不好

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(如[1])。。。请帮帮我

实现这一点有两种方法:

  • 解析为[1]后,将结果也分配给ID1

  • 将as数组设为静态,并在初始化ID1之前加载它

  • 我想你可能缺乏这门语言的一些基本知识

    静态初始化块仅在类第一次被引用时运行

    每次实例化类的实例时,构造函数都会运行

    我假设ID1是一个静态变量,您试图在静态区域初始化它,该区域在构造函数有机会执行之前运行

    仅仅因为代码是按特定顺序编写的,并不意味着它是按该顺序运行的

    假设您真的想将ID1设置为任何ID,您必须这样做

    public Name()
    {
       ID = 1;
       loadOptions();
       ID1 = ID;
    }
    

    当然,如果您不构造Name的实例,则在创建实例之前ID1将保持为0

    请通过重写您的问题来帮助我们。请通过在您的问题中添加相关的语言标记来帮助我们。您可以共享更多代码吗?您是说希望在静态块中使用as[1]中的ID1=值吗?我假设这是一个java问题。但是我仍然不完全理解它-什么是loadoptions参数?那么为什么不能说
    ID1=Integer.parseInt(as[1])?静态块首先运行,因此在获得值时必须在运行时更改该值。“将as数组设置为静态,并在初始化ID1之前加载它”您能举个例子吗?静态字符串as[]=新字符串[]{“ID”,“42”};