我正在尝试将我从一个数组创建的对象复制到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];
}
}
任何帮助都将不胜感激。
感谢。
答案 0 :(得分:3)
我不确定你是否曾经分配任何“Cell”对象 - 只是用于保存它们的数组。
如果是这样,那可能是你的NullPointer异常的原因。
良好的链接:
向下滚动到“对象阵列”部分。
'希望有所帮助!