java - 如何使用java cdi的注入(inject)点读取非绑定(bind)属性

标签 java cdi jboss-weld

如果我有一个 InjectPoint 类实例,我如何从它读取 Annotation 的属性。即:用限定符注释 @MyCar(mpg="23")

如果在注入(inject) MyCar 时有一个 injectionPoint,我将如何获得 mpg 和 “23”

@Inject
public void injectionTest(@MyCar(mpg="23") Car _car,InjectionPoint ip)
{
...
}


@Qualifier
@Retention(RUNTIME)
@Target({TYPE, METHOD, FIELD, PARAMETER})
public @interface MyCar
{
    @Nonbinding
    String mpg() default "30";
}

最佳答案

for(Annotation a : injectionPoint.getQualifiers())
{
   if(a instanseof MyCar)
   {
     MyCar myCar = (MyCar) a;
     a.mpg();
   }
}

关于java - 如何使用java cdi的注入(inject)点读取非绑定(bind)属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21294900/

相关文章:

java - CDI 我是否需要具有默认构造函数的对象的生产者?

java - 如何在 Servlet 中注入(inject) ConversationScoped bean

jakarta-ee - 什么是焊接,JSR-299?

java - 以编程方式清除 IBM MQ 队列

java - 解密(使用 PHP)Java 加密(PBEWithMD5AndDES)

java - 当 get 和 is 都存在时,JSTL EL 访问器翻译优先级?

java - 与实现不同的 jar 中的装饰器

无状态Bean的范围

java - 从公共(public)静态上下文访问私有(private)静态方法

ejb - Wildfly 8.2 : component. CREATE 丢失