読者です 読者をやめる 読者になる 読者になる

S2AOPでエンハンスされたクラスからアノテーションを取得したい

java seasar

んですが、どうやったらいいんでしょうかね。

使える材料は、MethodInvocationのインスタンスのみ。

   LOG.debug(invoke.getMethod().getName());
   LOG.debug(Arrays.asList(invoke.getMethod().getAnnotations()));

とメソッドのアノテーションはふつうにとれました。

で、

   LOG.debug(invoke.getThis().getClass().getName());
   LOG.debug(Arrays.asList(invoke.getThis().getClass().getAnnotations()));

とやると、出力は

hoge.Hoge$$EnhancedByS2AOP$$6c1a82
[]

となってしまうのです。

javassistのバージョンを3.1に挙げてみたりしましたが変わらず。