0

これまでのところ、 for ループで null ポインター エラーが発生していますが、その理由を知っている人はいますか? ありがとう

ここにエラーメッセージがあります

オブジェクト参照がオブジェクト インスタンスに設定されていません。

    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";
        }
    }
4

2 に答える 2

1

文字列フィールドColorはインスタンス化されていますか? それのようには見えません。

あなたの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";
        }
于 2012-05-25T00:56:53.657 に答える
0

配列の配列(ジャグ配列とも呼ばれます)を作成していますが、これはあなたが望んでいるものではないと思います。おそらく多次元配列を探しているでしょう:

BoardSquare[,] board = new BoardSquare[15,15];

次に、それに割り当てると:

board[i,k] = new BoardSquare(i, k);
boardHtml += board[i,k].getHtml();
于 2012-05-25T01:26:22.030 に答える