同参照比較 は、Java では "==" ですが、Groovy では is メソッドです。
自分でもブログに書いていたんですが、すっかり忘れてました。
Object の同一性を確かめる - お だ のスペース
Java で equals メソッドを override したコードを、そのまま GroovyConsole に張り付けて実行したら StackOverflowError が出て??ってなってた。
@Override
public boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (!(obj instanceof Hoge)) {
return false;
}
return this.id == ((Hoge)obj).id;
}
これ、最初の this == obj が Groovy だと equals メソッド呼ばれるんで StackOverflowError ですね。
しばらく気付かなかった。。