Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
数组中包含对象的Java NullPointerException_Java_Arrays_Object_Nullpointerexception - Fatal编程技术网

数组中包含对象的Java NullPointerException

数组中包含对象的Java NullPointerException,java,arrays,object,nullpointerexception,Java,Arrays,Object,Nullpointerexception,我是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, in

我是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;
        }
    }
}

}
公共类映射提供程序实现。。。。。。。{
斯皮尔菲尔德的私人多米尼克文件[][];
int行;
int col;
公共地图提供程序(int zahl1、int zahl2){
DominionTile[][]spielfeld=新的DominionTile[zahl1][zahl2];
col=zahl1;
row=zahl2;
}
@凌驾
public MapTile[]getColumn(int spalte){//DONE
如果((spalte<0)和(&(spalte>col)){
返回null;
}
否则{
返回斯皮尔菲尔德[spalte];
}
}
@凌驾
public int getColumns(){//DONE
返回列;
}
@凌驾
public int getRows(){//DONE
返回行;
}
@凌驾
公共布尔值有效(int spalte,int zeile){//DONE
如果((spalte<0)和&(zeile<0)){
返回false;
}
否则如果((spalte>col)和&(zeile>row)){
返回false;
}
否则{
返回true;
}
}
@凌驾
公共域文件getTile(int列,int行){//DONE
返回斯皮尔菲尔德[col][row];
}
@凌驾
公共空间设置MapTiles(MapWorld world){//NICHT FERTIG
最终地图karte=world.getMap();
int zeilen=karte.getRows();
int spalten=karte.getColumns();

对于(int i=1;i您的构造函数中有这个值。它声明并分配给一个局部变量,而不是
spielfeld
字段,因此该字段保留一个
null

DominionTile[][] spielfeld = new DominionTile[zahl1][zahl2];
您可能想要:

public MapProvider(int zahl1, int zahl2) {
    spielfeld = new DominionTile[zahl1][zahl2];
    col = zahl1;
    row = zahl2;
}

i、 e.没有类型声明,它将分配给对象的字段。

您的构造函数中有这一点。这将声明并分配给局部变量,而不是
Spielfield
字段,因此该字段保留一个
null

DominionTile[][] spielfeld = new DominionTile[zahl1][zahl2];
您可能想要:

public MapProvider(int zahl1, int zahl2) {
    spielfeld = new DominionTile[zahl1][zahl2];
    col = zahl1;
    row = zahl2;
}

i、 e.如果没有类型声明,它将分配给对象的字段。

作为起点,您可能需要打印zeilen和spalten的值。我猜这是由于访问spielfeld[i][j]而导致的,其中spielfeld[i]首先不存在。

作为一个起点,您可能需要打印出zeilen和spalten的值。我猜这是由于访问spielfeld[I][j]而导致的,spielfeld[I]首先不存在。

您可以复制stacktrace吗?您可以附加异常的堆栈跟踪吗?将看到:DominionFile在哪里(world,i,j)构造函数定义。你也可以发布代码吗?你的数组是0索引的。不要从
1开始一直到
你能复制堆栈跟踪吗?你能附加异常的堆栈跟踪吗?将看到:DominionFile(world,i,j)在哪里构造函数已定义。您是否也可以为此发布代码?您的数组是0索引的。不要从
1
开始,一直到