JavassistのCtMethod

JavassistのCtMethodはequalsとhashCodeがオーバーライドされている。
CtMethodというからには、てっきりそのメソッドが定義されているクラスのことを意識して
結果を返してくれるのかと思いきや、実はそうではなかった。


JavadocのCtMethdo#equalsから引用

Indicates whether obj has the same name and the same signature as this method.

つまり、メソッド名とシグニチャが一緒だったらクラスとは関係なくtrue。
ソースを確認してみたけど、確かに実装もそのようになっている。


1時間もハマまってしもーた。
なんか理由があるんだろうなぁ、きっと。