Reputation: 19776
The CDI class BeanManager
has several methods which take parameters of type Annotation
or Annotation...
. For example BeanManager.getBeans(...)
.
I would like to know how I'm supposed to pass my annotations as parameters to those methods.
I've tried BeanManager.getBeans(MyBean.class, MyAnnotation.class)
, but it doesn't work that way. I've seen Class.isAnnotation()
, but there's nothing like Class.asAnnotation()
to retrieve it as an Annotation
type.
Neither BeanManager.getBeans(MyBean.class, @MyAnnotation)
worked, nor did BeanManager.getBeans(MyBean.class, (Annotation) MyAnnotation.class)
.
How can I retrieve my annotation class as type Annotation
?
Upvotes: 8
Views: 3981
Reputation: 28865
There is an example in the documentation:
beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() {});
Source: 16.6. The Bean interface
Upvotes: 9
Reputation: 3649
You need to use
getAnnotation(Class annotationClass) Returns this element's annotation for the specified type if such an annotation is present, else null.
Or loop through
getAnnotations() Returns all annotations present on this element.
To get the annotation.
object.getClass().getAnnotations()
Upvotes: 0