我确信这里有一些简单的东西,但我有一个名为coinBox的2d Coin对象数组,我已经初始化了,我想用每个循环使用一个Coin对象来填充它。当我使用常规for循环时,它工作正常,但每个我最终得到的所有我的硬币对象在coinBox保持null。这是我的代码。
for(int r = 0; r < coinBox.length;r++){
for(int c = 0; c < coinBox[r].length;c++){
coinBox[r][c] = new Coin(country,0,0);
}
}
for(Coin[] coin : coinBox){
for(Coin c : coin){
c = new Coin(country,0,0);
}
}
答案 0 :(得分:1)
如果是数组 - 例如
for(Coin c : coin){
//do something with `c`
}
与
相同for(int i = 0; i<coin.length; i++){
Coin c = coin[i];
//do something with `c`
}
因此,您看到Coin c
是局部变量,它保存位置i
处的数组的值。所以每次你做
c = new Coin(country,0,0);
您正在为该局部变量c
分配新值,这不会影响数组。