假设您有这个注入点:

@Inject
private Instance<DeliveryEndpoint> allEndpoints;

并且您想要选择一个以@ActiveEndpoint注释的端点子组
allActiveEndpoints.select(new AnnotationLiteral<ActiveEndpoint>(){})

为什么CDI的创造者不只是这样做呢?
allActiveEndpoints.select(ActiveEndpoint.class)

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

最佳答案

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

09-27 20:13