我正在为我正在编写的稀疏矩阵类(学校项目的一部分)研究 equals() 方法。我经常遇到这样的问题,它不允许我使用任何方法或特定于我的类的其他成员,因为that
(我用于参数 to 的名称equals
)必须是泛型类型Object
才能覆盖Objects
的equals()
方法. 除此之外,我还需要能够使用我的 SparseMatrix 类型参数的一些方法来真正比较相等性,除非我也能弄清楚。我怎样才能写它来绕过那个障碍?
我有一些想法,我晚上如何做到这一点,但它们似乎都不起作用:我尝试过转换参数,我尝试过 overlading equals()
,我什至尝试过其他一些东西,但似乎都不起作用。
这是我到目前为止所拥有的,但是,正如我所说,我无法让它发挥作用。
public boolean equals(Object that) {
if (that instanceof SparseMatrix<?>) {
if (this.xSize != that.xSize ||
this.ySize != that.ySize)
return false;
/* make some more comparisons that depend on specific
* members of my matrix class, etc...*/
}
return false;
}
我已经尝试过搜索这个,虽然我能够找到一些似乎在问同样事情的人,但我找不到任何真正解释如何做到这一点的答案。