1

私が書いている Battleship プログラムには、ドライバー、ドメイン、ヘルパー クラスの 3 つのクラスがあります。mutator メソッドを使用してドメイン クラスの char の 2D 配列内の要素の値を変更したかったのですが、渡そうとすると「互換性のない型: char を char[][] に変換できません」というエラーが表示され続けます。ヘルパー クラスの配列をドメイン クラスに渡します。私は何を間違っていますか、またはこれを行う別の方法があります。

public void hitOrMiss() {
   char[][] tUGB = bShip.getUserGameboard();
   char[][] tGB = bShip.getGameboard();
    if (bShip.getGameboard()[bShip.getUserRow()][bShip.getUserCol()] == '0') {
        System.out.println("You missed!");
        tUGB[bShip.getUserRow()][bShip.getUserCol()] = 'O';
        bShip.setUserGambeboard(tUGB[bShip.getUserRow()][bShip.getUserCol()]);
        //this.userGameboard[userRow][userCol] = 'O';
        this.misses++;
        this.chances--;

    } else {
        System.out.println("You got a hit!");
        this.hits++;
        this.chances++;
        this.userGameboard[userRow][userCol] = this.hit;
        this.gameboard[userRow][userCol] = this.hit;
    }
}

これはミューテータークラスです

public void setUserGambeboard(char[][] aUserGameboard){
    this.userGameboard = aUserGameboard;
4

1 に答える 1

1

あなたのコードに基づいてtUGB[bShip.getUserRow()][bShip.getUserCol()]、2次元配列からの値をtUGBchar[][].

したがって、エラーは理にかなっています。acharchar[][]は互換性のない型です。

于 2016-01-31T00:09:23.480 に答える