目前 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 有提供这种直接比较位址的方式吗?