例を考えてみましょう
class FooListener extends Listener {
@Listen
def runMeToo = {
...
}
}
trait Listener {
@Listen
def runMe = {
...
}
}
特定のアノテーション(つまり@Listen )でアノテーションが付けられた特定のクラス(つまりFooListener )のすべてのメソッドを見つけるためのイントロスペクションコードを書いています。それらは特定の状況下で呼び出されます。したがって、すべてのjava.lang.Methodインスタンスが必要です。
FooListenerクラスでこれらのメソッドを見つけるのは簡単です。スーパークラスのものも簡単に見つかります。
問題は、形質から受け継いだものをどのように見つけるかです。そして、その特徴の特徴は?等...