在Java中将对象从数组复制到数组

时间:2012-10-31 00:57:24

标签: java

我正在尝试将我从一个数组创建的对象复制到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];
    }
}

任何帮助都将不胜感激。

感谢。

1 个答案:

答案 0 :(得分:3)

我不确定你是否曾经分配任何“Cell”对象 - 只是用于保存它们的数组。

如果是这样,那可能是你的NullPointer异常的原因。

良好的链接:

向下滚动到“对象阵列”部分。

'希望有所帮助!