我正在尝试将我创建的对象从一个数组复制到另一个相同类型的 Java 中。当我运行我的程序时,我收到一个 NullPointerException。
相关的类函数是:
private int mState;
public Cell(int pRow, int pColumn, int pState) {
//other things
setState(pState);
}
public void setState(int pNewState) {
mState = pNewState;
}
public void setDead() {
mState = DEAD;
}
以及发生错误的行:
mFutureGeneration[i][j].setDead();
该数组定义为
private Cell [][] mFutureGeneration;
然后尺寸为
mFutureGeneration = new Cell[100][100];
它从以下位置接收内容:
Cell [][] vSeedArray = new Cell[100][100];
填充为
for (int i = 0; i<100; i++) {
for (int j = 0; j<100; j++) {
int vNewState = mGenerator.nextInt(2) - 1;
vSeedArray[i][j] = new Cell(i,j,vNewState);
}
}
我认为问题出在副本中,但我一直认为 Java 是通过引用复制的,所以我不明白为什么它会失败。
我用循环复制内容
for(int i = 0; i<vSeedArray.length; i++) {
for(int j=0; j<vSeedArray[i].length; j++) {
mCurrentGeneration[i][j] = vSeedArray[i][j];
}
}
任何帮助,将不胜感激。
谢谢。