どうも。他力本願なnobeansです。
S2AOP でエンハンスされたクラスは元のクラスのサブクラスなので,invoke.getThis().getClass().getSuperclass().getAnnotations() で取れるはずです
commentd by id:koichik
ありがとうございます!
早速試してみました。
LOG.debug(invoke.getThis().getClass().getSuperclass()); →java.lang.Object
????
Object?行き過ぎ行き過ぎ。
と軽くショックを受けて気がつきました。
これ(hoge.Hoge)って、Interfaceだった...。
ということで
for (Class clazz: invoke.getThis().getClass().getInterfaces()) { LOG.debug(clazz); LOG.debug(Arrays.asList(clazz.getAnnotations())); }
としてみるとおかげさまで無事にアノテーションが取れました。
つまり、インタフェースもスーパクラスも全部チェックしてあげないと、全部のアノテーションは拾えないわけですね。