【发布时间】:2012-01-15 11:12:31
【问题描述】:
我正在尝试在我的班级中实现 equals 方法..
注意:'_data' 属性是一个 double[][] 数组,我试图在两个对象之间进行比较。
无论如何它都能编译,但我总是得到一个错误的答案,这不可能是因为两个数组是相同的:o
我做错了吗?还有其他简单的方法吗? (仅使用对象类中的等号!!)
我的代码(JAVA):
public boolean equals(Object obj) {
if (!(obj instanceof MyClass)) {
return false;
}
MyClass myObj = (MyClass) obj;
return this._data.equals(myObj._data);
}
【问题讨论】:
-
您必须粘贴更大的代码 sn-p。现在很难判断是什么导致了问题。
-
出于调试目的,请您执行
MyClass mc1 = new MyClass(); MyClass mc2 = mc1; boolean toCheck = mc1.equals(mc2);Does toCheck == true 之类的操作吗? -
Tomasz Nurkiewicz - 我不能使用你建议的方法,我只要求实现 equals 方法..
-
我确定如果你使用
equals它和使用==是一样的,也就是说,只比较它们是否是相同的实例(相同的引用),而不是它们是否具有相同的内容。测试它:int[] a = { 1 }; int[] b = { 1 }; System.out.println(a.equals(b));