【发布时间】:2015-01-06 13:41:12
【问题描述】:
我是 Java 新手,在这行代码中遇到 NullPointerException 错误:
spielfeld[i][j] = new DominionTile(world,i,j); // last function
这是整个程序代码:
public class MapProvider implements ....... {
private DominionTile[][] spielfeld;
int row;
int col;
public MapProvider(int zahl1, int zahl2) {
DominionTile[][] spielfeld = new DominionTile[zahl1][zahl2];
col = zahl1;
row = zahl2;
}
@Override
public MapTile[] getColumn(int spalte) { // DONE
if ((spalte < 0) && (spalte > col) ) {
return null;
}
else {
return spielfeld[spalte];
}
}
@Override
public int getColumns() { // DONE
return col;
}
@Override
public int getRows() { // DONE
return row;
}
@Override
public boolean isValid(int spalte, int zeile) { // DONE
if ((spalte < 0) && (zeile < 0)) {
return false;
}
else if ((spalte > col) && (zeile > row)) {
return false;
}
else {
return true;
}
}
@Override
public DominionTile getTile(int col, int row) { // DONE
return spielfeld[col][row];
}
@Override
public void setupMapTiles(MapWorld world) { // NICHT FERTIG
final Map karte = world.getMap();
int zeilen = karte.getRows();
int spalten = karte.getColumns();
for (int i = 1; i <= spalten; i++) { // I-TE SPALTE
for (int j = 1; j <= zeilen; j++) { // J-TE ZEILE
spielfeld[i][j] = new DominionTile(world,i,j);
//DominionTile neu = new DominionTile(world, i, j);
//spielfeld[i][j] = (DominionTile)neu;
}
}
}
}
最后一个函数应该在数组的每个位置放置一个 DominionTile。我做错了什么?
【问题讨论】:
-
你能复制堆栈跟踪吗?
-
你能附加异常的堆栈跟踪吗?
-
DominionTile(world,i,j) 构造函数在哪里定义。你也可以发布代码吗?
-
您的数组索引为 0。不要从
1开始一直到<=,而是尝试0和<。
标签: java arrays object nullpointerexception