如何将Annotation作为参数传递?

时间:2014-05-21 11:54:33

标签: java parameters annotations cdi bean-manager

CDI类BeanManager有几种方法可以采用AnnotationAnnotation...类型的参数。例如BeanManager.getBeans(...)

我想知道我应该如何将我的注释作为参数传递给这些方法。

我已经尝试了BeanManager.getBeans(MyBean.class, MyAnnotation.class),但它并没有这样做。我看过Class.isAnnotation(),但没有像Class.asAnnotation()那样将其检索为Annotation类型。

BeanManager.getBeans(MyBean.class, @MyAnnotation)都没有效果,BeanManager.getBeans(MyBean.class, (Annotation) MyAnnotation.class)也没有。

如何将注释类检索为Annotation类型?

2 个答案:

答案 0 :(得分:9)

文档中有一个例子:

beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() {});

来源:16.6. The Bean interface

答案 1 :(得分:0)

您需要使用

  

getAnnotation(Class annotationClass)返回此元素&#39; s   如果存在这样的注释,则指定类型的注释,   否则为空。

或循环播放

  

getAnnotations()返回此元素上的所有注释。

获取注释。

  

object.getClass()。getAnnotations()

javadoc