我正在编写的《战舰》程序中有三个类,一个驱动程序,一个域和一个辅助程序类。我想使用mutator方法更改域类中chars的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;
    }
}


这是mutator类

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

最佳答案

根据您的代码,tUGB[bShip.getUserRow()][bShip.getUserCol()]正在将2d数组tUGB中的值传递给需要char[][]的方法。

因此,错误是有道理的; charchar[][]是不兼容的类型。

10-01 18:48