我有这个建设者:
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/