我有这个建设者:

    private static int list [] = new int[0];
    public IntList (String[] elems){
        this.list = new int[elems.length];
        int j=0;
        for(String i : elems){
            this.list[j] = Integer.parseInt(i);
            ++j;
        }
    }


如果我定义了一个新的IntList,而我看不到原始的args

public static void myTest(IntList args){
  String[] tmpIntList = {"21","22","23","24"};
  IntList newIntListForTest = new IntList(tmpIntList);
  /* for example, if I called myTest with {"1","2","3"},
      and if I print args here then I see only  21,22,23,24*/
}


我怎么才能看到他们两个?

最佳答案

您的list成员是static,这意味着它属于该类,而不是特定的实例。换句话说,IntList的所有实例共享相同的list,因此,无论何时创建新实例并覆盖list,它都会被“所有IntList”所覆盖。

长话短说-删除修改后的static,您应该可以:

private int[] list = new int[0];

关于java - 如何不用我得到的构造函数覆盖参数?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47246976/

10-12 01:17