【发布时间】:2012-09-21 04:31:03
【问题描述】:
我正在为我正在编写的稀疏矩阵类(学校项目的一部分)研究 equals() 方法。我经常遇到这样的问题,它不允许我使用任何特定于我的类的方法或其他成员,因为that(我用于equals 的参数的名称)必须是泛型类型@ 987654323@ 以覆盖Objects 的equals() 方法。除此之外,我还需要能够使用我的 SparseMatrix 类型参数的一些方法来真正比较相等性,除非我也能弄清楚。我该如何编写它来绕过这个障碍?
我有一些想法,但它们似乎都不起作用:我尝试过转换参数,我尝试过覆盖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;
}
我已经尝试过搜索这个,虽然我能够找到一些似乎在问同样事情的人,但我找不到任何真正解释如何这样做的答案.
【问题讨论】:
标签: java casting polymorphism equals