目前 groovy 新手,語法也不熟
在練習遇到一個問題
通常 java override equals 會這樣
class MyClass {
private String field1;
private String field2;
// ... getter && setter
@Override
public boolean equals(Object obj) {
if(obj == null) return false;
if(obj == this) return true;
if(obj.getClass() != this.getClass()) return false;
MyClass mc = (MyClass) obj;
return field1.equals(mc.getField1()) && field2.equals(mc.getField2());
}
}
若改成 groovy, == 會被轉成 equals,所以會無限迴圈。
目前知道 if(obj == null) 可以改成 if(obj)
但是 if(obj == this) 要怎麼改?
groovy 有提供這種直接比較位址的方式嗎?