以下の内容はhttps://odashinsuke.hatenablog.com/entry/20110619/1308448542より取得しました。


Java のコードをそのまま Groovy にコピペした際は、equals メソッドをオーバーライドしてたらハマる

同参照比較 は、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 ですね。
しばらく気付かなかった。。




以上の内容はhttps://odashinsuke.hatenablog.com/entry/20110619/1308448542より取得しました。
このページはhttp://font.textar.tv/のウェブフォントを使用してます

不具合報告/要望等はこちらへお願いします。
モバイルやる夫Viewer Ver0.14