2d数组的NullPointerException

时间:2012-07-12 00:45:13

标签: java arrays nullpointerexception 2d

map = new BufferedImage[width][height];
  for(int i=0;i<height;i++){
      for(int j=0;j<width;j++){    
  if(charMap[j][i] == Mountains.indentifier) {      
    if ( j+1 < width && j-1 >= 0){
        if(charMap[j-1][i] != Mountains.indentifier && charMap[j+1][i] != Mountains.indentifier) {            
            map[j][i]= tileGrid[1][10];
         }
    }    
    else {
        map[j][i]= tileGrid[8][10];
    }
   }
}

这是我用来尝试通过检查单元格周围的每个图块来检查2D数组的代码,但我似乎得到了一个nullpointerexception我想知道是否有人可以提供帮助?

2 个答案:

答案 0 :(得分:0)

您只分配了外部数组。

您需要分配每个内部数组。

所以:

map = new BufferedImage[width][height];
for (int i = 0; i < width; i++)
{
    map[i] = new BufferedImage[height];
}

答案 1 :(得分:0)

我怀疑你是从charMap[j][i] == Mountains.indentifier行获得NullPointerException。

确保按照Geoff的建议初始化charMap和map的内部数组。