假设你有这个注入(inject)点:
@Inject
private Instance<DeliveryEndpoint> allEndpoints;
并且您想选择一个用 @ActiveEndpoint
注释的端点子组>
allActiveEndpoints.select(new AnnotationLiteral<ActiveEndpoint>(){})
到底为什么 CDI 的创建者不只是这样做呢?
allActiveEndpoints.select(ActiveEndpoint.class)
那会容易得多...我觉得因为我不明白这一点,我最终可能会用我的代码做一些错误的事情。我错过了什么?
最佳答案
您的 ActiveEndpoint 是一个简单的限定符 - 没有参数。对于带有参数的限定符,这是行不通的。方法只能接受对象,限定符不是对象。
关于java - Guice/CDI/JEE6 为什么instance.select(qualifiers)使用实例而不是MyQualifier.class的Annotation?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16599635/