我正在编写的《战舰》程序中有三个类,一个驱动程序,一个域和一个辅助程序类。我想使用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[][]
的方法。
因此,错误是有道理的; char
和char[][]
是不兼容的类型。