我正在javafx中编写自己的tic tac toe游戏,但似乎偶然发现了一些我在处理类时不理解的基本机制。我试图简化这个问题的问题。我只想创建一个包含二维字符串数组的Game对象,然后通过另一个类'方法打印出该数组中的字符串。我运行此代码时出现空指针异常。任何帮助将不胜感激。欢呼声。
package testing;
import javafx.application.Application;
import javafx.stage.Stage;
public class Main extends Application {
@Override
public void start(Stage primaryStage) {
Game g = new Game();
g.addMove("X", 1, 0);
g.addMove("O", 0, 1);
GUI.printBoard(g);
}
public static void main(String[] args) {
launch(args);
}
}
package testing;
public class Game {
private String[][] board;
public Game() {
this.board = new String[3][3];
}
public String[][] getBoard() {
return this.board;
}
public void addMove(String s, int row, int col) {
this.board[row][col] = s;
}
}
package testing;
public class GUI {
public static void printBoard(Game g) {
String[][] board = g.getBoard();
for (int row = 0; row < 3; row++) {
for (int col = 0; col < 3; col++) {
if (board[row][col].equals("X"))
System.out.println(board[row][col]);
else
if (board[row][col].equals("O"))
System.out.println(board[row][col]);
}
}
}
}
答案 0 :(得分:0)
您只为数组的条目[1],[0]和[0],[1]分配了一个值。由于您的数组是3乘3,其余值仍将被指定为null。当您打印出数组的值时,您也在迭代空值。因此,如果您要尝试比较&#34; X&#34; to null,生成NullPointerException。