到目前为止,我有,我的for循环中出现空指针错误 有谁知道为什么? 感谢
这是错误消息
对象引用未设置为对象的实例。
board = new BoardSquare[15][];
String boardHtml = "";
for (int i = 0; i < 15; i++) {
for (int k = 0; k < 15; k++) {
//if (board[i][k] == null)
board[i][k] = new BoardSquare(i, k);
boardHtml += board[i][k].getHtml();//null pointer error here
}
}
/**
* A BoardSquare is a square on the FiveInARow Board
*/
public class BoardSquare {
private Boolean avail; //is this square open to a piece
private String color;//the color of the square when taken
private int x, y; //the position of the square on the board
/**
* creates a basic boardSquare
*/
public BoardSquare(int x, int y) {
avail = true;
this.x = x;
this.y = y;
color = "red";//now added (thanks)
}
/**
* returns the html form of this square
*/
public String getHtml(){
String html = "";
html = "<div x='" + x + "' y='" + y + "' class='" + (avail ? "available" : color) + "'></div>";
return html;
}
/**
* if true, sets color to red
* if false, sets color to green
*/
public void takeSquare(Boolean red){
if(red)
color = "red";
else
color = "green";
}
}
答案 0 :(得分:1)
字符串字段颜色是否已实例化?看起来不像。
你的Null。
html = "<div x='" + x + "' y='" + y + "' class='" + (avail ? "available" : color) + "'></div>";
构造函数应该是这样的:
public BoardSquare(int x, int y) {
avail = true;
this.x = x;
this.y = y;
Color = "white";
}
答案 1 :(得分:0)
您正在创建array of arrays(也称为锯齿状数组),我认为这不是您想要的。您可能正在寻找multidimensional数组:
BoardSquare[,] board = new BoardSquare[15,15];
然后当你指定它时:
board[i,k] = new BoardSquare(i, k);
boardHtml += board[i,k].getHtml();