我得到:'意外的类型
要求:变量
找到:标记行上的值'(*)
for (int i = 0; i < boardSize; i++) {
for (int j = 0; j < boardSize; j++) {
rows[i].getSquare(j) = matrix[i][j]; // * points to the ( in (j)
columns[j].getSquare(i) = matrix[i][j]; // * points to the ( in
int[] b = getBox(i, j);
int[] boxCord = getBoxCoordinates(i + 1, j + 1);
boxes[b[0]][b[1]].getSquare(boxCord[0], boxCord[1]);
}
}
这是我的Row类:
private Square[] row;
Row(int rowCount) {
this.row = new Square[rowCount];
}
public Square getSquare(int index) {
return this.row[index];
}
请指出我在这里做错了什么来帮助我 提前谢谢。
答案 0 :(得分:10)
您无法将某些内容分配给方法的返回值。相反,您需要向setSquare()
类添加Row
方法:
public Square setSquare(int index, Square value) {
this.row[index] = value;
}
并像这样使用它:
rows[i].setSquare(j, matrix[i][j]);
答案 1 :(得分:0)
Java没有指针 - 引用不是一回事。
根据您发布的代码,无法确定实际情况。我认为您需要一种方法来设置Row类拥有的私有数组中Square的值。
public void setSquare(int index, Square newSquare) {
this.row[index] = newSquare;
}
无论如何,它看起来像一个糟糕的抽象。
答案 2 :(得分:-2)
Java没有指针。对象通过引用传递和返回。就C ++而言,rows[i].getSquare(j)
是右值,而不是左值,因此您无法分配给它。
相反,您应该创建并使用rows[i].setSquare(...)
。