How to pass an Annotation as a parameter?
annotations, bean-manager, cdi, java, parameters
Solution
There is an example in the documentation:
beanManager.getBeans(Object.class, new AnnotationLiteral<Any>() {});
Source: 16.6. The Bean interface
Problem
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`?