-1

我得到:'需要意外类型
:找到变量
:值'在标记行(*)

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]);
    }
}

这是我的行类:

private Square[] row;

Row(int rowCount) {
    this.row = new Square[rowCount];
}

public Square getSquare(int index) {
    return this.row[index];
}  

请指出我在这里做错了什么来帮助我。
提前致谢。

4

3 回答 3

10

您不能将某些内容分配给方法的返回值。相反,您需要向该类添加一个setSquare()方法Row

public Square setSquare(int index, Square value) {
    this.row[index] = value;
}  

并像这样使用它:

rows[i].setSquare(j, matrix[i][j]);
于 2012-04-09T15:34:32.920 回答
0

Java 没有指针——引用不是一回事。

根据您发布的代码,无法判断到底发生了什么。我认为您需要一种方法来在您的 Row 类拥有的私有数组中设置该 Square 的值。

public void setSquare(int index, Square newSquare) {
    this.row[index] = newSquare; 
}

无论如何,它看起来像是一个糟糕的抽象。

于 2012-04-09T15:37:06.703 回答
-2

Java没有指针。对象通过引用传递和返回。就 C++ 而言,rows[i].getSquare(j)是一个rvalue,而不是一个lvalue,所以你不能分配给它。

相反,您应该创建和使用rows[i].setSquare(...).

于 2012-04-09T15:33:44.263 回答