一尘不染

数组中的NullPointerException

java

我一直在获取NullPointerException(请参见下文)。在C#中一切正常,但是在android中会坏吗?

arrDBNumbers已满,应该执行代码并计算#1,#2,#3的数量,依此类推,直到#49,将arrFreq [i]
[1]加1以将数字的总数填充到arrFreq。

它遍历if语句,直到k到达6,其中arrDBNumbers [0] [6]为1,然后在if语句内跳转然后中断?我不确定这是怎么回事,请多多指教。

Integer[][] arrDBNumbers = new Integer[100][8];
Integer[][] arrFreq = new Integer[49][2];


for (int i = 0; i < 49; i++){
    for (int j = 0; j < 49; j++){
        for (int k = 1; k < 7; k++){
            if (arrDBNumbers[j][k] == (i + 1)){
                arrFreq[i][1]++;     //  < here is where I get Exception?
            }
        }
    }
}

阅读 177

收藏
2020-12-03

共1个答案

一尘不染

因为只是写作

Integer[][] arrFreq = new Integer[49][2];

表示您已经使用所有null元素初始化了该数组,因为它是一个IntegerObjects 数组,并且Object的默认值为null引用。 因此,

arrFreq[i][1]++;  // trying null++;

NullPointerException

如果您使用的 是原始数组,则默认情况下为 s 数组, 情况并非如此 0

int[][] arrFreq = new int[49][2];
2020-12-03