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