AnnotationとGenerics
はOKだけど。
Component component = Foo.class.getAnnotation(Component.class);
はNG。
Class clazz = Foo.class;
Component component = clazz.getAnnotation(Component.class);
とキャストする必要がある。気持ちはわかるけど、DIコンテナのようにクラス名がリテラルで記述できない場合は困るじゃないの!!!
Component component = (Component) clazz.getAnnotation(Component.class);
追記:
NoInject noInject = method.getAnnotation(NoInject.class);
はできるじゃん。何でクラスでできんのじゃEclipse。NetBeansだとどぉ? -> きしださん
さらに追記:
アドバイスどおり
で無事うまくいきました。ありがとうございました。キャストと変わらないように見えるのは、きっと気のせいですね。(笑)
Component component =
clazz.getAnnotation(Component.class);