1

我有这种方法,我希望能够确定两个单元格是否相等,其中“相等”表示它们具有相同的位置。我已经编写了这段代码,我同时使用instanceof和强制转换以确保我的对象属于 type Position,然后将其强制转换为 type Position,但由于某种原因它似乎不起作用。

这是我的代码:

public class Postion {

    private int column;
    private int row;

    public Position (final int column, final int row)  {
        this.column = column;
        this.row = row;
    }

    public int getColumn() {
        return column;
    }

    public int getRow() {
        return row;
    }

    public boolean equals(final Object other) {
        if (other instanceof Position) {
            Position position = (Position) other;
            return ((column == other.getColumn()) && (row == other.getRow()));
        } else {
            return false;
        }
    }
}

我得到了这个错误代码,实际上我得到了这两种get方法的错误代码:

error:
cannot find symbol
return ((column == other.getColumn()) && (row == other.getRow()));
^
symbol: method getRow()
location: variable other of type Object
4

3 回答 3

7
return ((column == other.getColumn()) && (row == other.getRow()));

应该

return ((column == position.getColumn()) && (row == position.getRow()));

对象不包含getColumn()getRow()方法,它是位置,所以你需要在那里使用位置。

于 2012-12-07T20:02:55.330 回答
1

您使用了 Object other 而不是键入的 Position 对象位置。

于 2012-12-07T20:06:37.387 回答
0

你应该重命名

Position position = (Position) other;

Position otherPos = (Position) other;

然后使用

otherPos.getColumn()
于 2012-12-07T20:09:14.710 回答