假设你有这个注射点:
@Inject
private Instance<DeliveryEndpoint> allEndpoints;
并且您想要选择使用@ActiveEndpoint
allActiveEndpoints.select(new AnnotationLiteral<ActiveEndpoint>(){})
为什么CDI的创造者不仅仅这样做呢?
allActiveEndpoints.select(ActiveEndpoint.class)
那会更容易......我觉得因为我不明白这一点,我最终可能会对我的代码做错事。我错过了什么?
答案 0 :(得分:4)
您的ActiveEndpoint是一个简单的限定符 - 没有参数。对于带参数的限定符,这将不起作用。方法只能接受对象而限定符不是对象。