Java 如何将实例化变量与其他变量区分开来?
这是我的密码:Java 如何将实例化变量与其他变量区分开来?,java,Java,这是我的密码: Piece grille[][] = new Piece[9][9]; grille[0][0] = new Piece(1,joueur1,0); grille[8][0] = new Piece(1,joueur2,0); grille[0][8] = new Piece(1,joueur2,0); grille[8][8] = new Piece(1,joueur1,0); gr
Piece grille[][] = new Piece[9][9];
grille[0][0] = new Piece(1,joueur1,0);
grille[8][0] = new Piece(1,joueur2,0);
grille[0][8] = new Piece(1,joueur2,0);
grille[8][8] = new Piece(1,joueur1,0);
grille[0][1] = new Piece(3,joueur2,1);
grille[1][0] = new Piece(3,joueur2,1);
grille[1][1] = new Piece(3,joueur2,1);
grille[7][0] = new Piece(3,joueur1,2);
grille[7][1] = new Piece(3,joueur1,2);
grille[8][1] = new Piece(3,joueur1,2);
grille[7][7] = new Piece(3,joueur2,3);
grille[7][8] = new Piece(3,joueur2,3);
grille[8][7] = new Piece(3,joueur2,3);
grille[0][7] = new Piece(3,joueur1,4);
grille[1][7] = new Piece(3,joueur1,4);
grille[1][8] = new Piece(3,joueur1,4);
grille[3][4] = new Piece(2,joueur1,0);
grille[5][4] = new Piece(2,joueur2,0);
for(int i=0; i<9; i++){
for(int j=0;j<9;j++){
if(grille[i][j].joueur == null)
grille[i][j] = new Piece(0, null,0); //0 correspond a case vide
}
}
这个错误似乎来自于:grill[i][j].jouer==null
我得到这个错误:
Citadella的线程“main”java.lang.NullPointerException中存在异常。(Citadella.java:35)Partie.main(Partie.java:8)
代码的问题是数组中有空点。循环将进行盲呼叫,
格栅[0][0]。焦耳然后格栅[0][1]。焦耳然后格栅[0][2]
。因为您没有分配grill[0][2]
它是空的。因此,您的空指针异常。我想您想要如果grill[I][j]==null,而不是取消对它的引用。您得到了什么错误?哪个错误?Citadella的线程“main”java.lang.NullPointerException(Citadella.java:35)Partie.main(Partie.java:8)中的stacktrace?异常在哪里?另外,在进行盲调用之前,看起来并没有分配所有位置。它可能是.jouer上的NPE。您正试图从空对象访问.jouer
。在检查它的属性是否为null之前,应该先检查if(grill[i][j]==null)
。
public int type;
public Joueur joueur;
public int param;