编程语言
首页 > 编程语言> > java-Guice / CDI / JEE6为什么instance.select(qualifiers)使用实例而不是MyQualifier.class的注释?

java-Guice / CDI / JEE6为什么instance.select(qualifiers)使用实例而不是MyQualifier.class的注释?

作者:互联网

假设您有这个注入点:

@Inject
private Instance<DeliveryEndpoint> allEndpoints;

并且您想要选择一个以@ActiveEndpoint注释的端点子组

allActiveEndpoints.select(new AnnotationLiteral<ActiveEndpoint>(){})

为什么CDI的创建者不只是这样做呢?

allActiveEndpoints.select(ActiveEndpoint.class)

这本来会容易得多…我觉得这是因为我不明白这一点,最终我可能会对我的代码做错什么.我想念什么?

解决方法:

您的ActiveEndpoint是一个简单的限定词-没有参数.对于带有参数的限定词,这将不起作用.方法只能接受对象,而限定符不是对象.

标签:guice,cdi,java,java-ee
来源: https://codeday.me/bug/20191030/1971396.html