问题
我编写了一个循环,在其中我用 Sum 对象填充了一个数组。一切正常,但是一旦循环进入下一次迭代,它就会覆盖数组的第一个索引。
我试过什么
我试图看看我的问题是否存在于另一段代码中(例如我的 Sum 类)。但是找不到任何会干扰循环的东西。
我试图找到具有相同名称的其他变量(即使在其他方法中,因为我很绝望),看看我是否可能在其他地方更改了我的迭代器。我找不到与此相关的任何内容。
我尝试在互联网上四处寻找,以便找到与意外覆盖数组有关的东西,但也找不到任何东西。
代码
public Task(Object[] parameters)
{
this.number_of_sums = Integer.parseInt((String)parameters[0]);
this.variables_per_sum = Integer.parseInt((String)parameters[1]);
this.sum_parameters = new Object[this.variables_per_sum];
this.sums = new Sum[this.number_of_sums];
int z = 0;
for(int i = 0; i < this.number_of_sums; i++)
{
int x = 0;
for(int j = (2 + z); j < ((this.variables_per_sum + 2) + z); j++)
{
this.sum_parameters[x] = parameters[j];
x++;
}
this.sums[i] = new Sum(this.sum_parameters);
System.out.println("Index 0: "+sums[0]); //1st iteration: 1 + 1 //2nd iteration: 2 - 1
System.out.println("Index 1: "+sums[1]); //1st iteration: null //2nd iteration: 2 - 1
z += this.variables_per_sum;
}
}
期望
我期待 1 + 1 和 2 - 1 的输出。但是,当我完成时,我得到以下结果:2 - 1 和 2 - 1。
如果有人发现我做错了什么,或者想在我身边看到更多信息或代码,请说出来。提前致谢。