所以我知道這是廣泛討論和討論的,我只是試圖讓我的平等爲Shapes工作。我創建了一個類Shape,它說明了什麼類型的Shape(即矩形,三角形,圓形),如果它們的形狀相同,我試圖返回true。在Java中爲我的對象實現Equals和hashCode
在主要用於測試...
Rectangle myRect = new Rectangle(3,5);
Rectangle myRect2 = new Rectangle(3,5);
if (myRect==myRect2){
System.out.println("Both the objects are equal");
}
else {
System.out.println("Both the objects are not equal");
}
,並覆蓋equals和hashCode我的實際形狀類。
abstract class Shape
{
abstract double area();
public Shape getShape(){
return shape;
}
@Override
public boolean equals(Object other) {
if (other == this) return true;
if (other == null) return false;
if (getClass() != other.getClass()) return false;
Shape shape = (Shape)other;
return(other==this);
}
@Override
public int hashCode() {
return shape.hashCode();
}
基本上,我一直得到錯誤作爲我的輸出,任何見解將有幫助,謝謝!
你覺得呢'其他== this'呢? –
你認爲'myRect == myRect2'呢? –
您可能想要結帳http://www.ideyatech.com/2011/04/effective-java-equals-and-hashcode/。 –