注入通用类型时 CDI 的问题:Wildfly 8.2.0.Final

Issues with CDI when injecting generic type : Wildfly 8.2.0.Final

由于 CDI 更改,我们在 Widfly 中面临奇怪的注入问题。我们有接口

public interface Command<I, O> {
}

很多类实现这个接口是这样的

public class ApproveUserRequests implements Command<ApproveUserRequestsRequest, List<String>> {
}

应用程序侦听器 类 喜欢获取所有 类 可用的列表并像这样使用注入

@Inject
private Instance<Command<I, O>> mActions;

但是 mActions 返回的实例始终为空。调试源代码后发现获取所有实例列表的唯一方法是使用

@Inject
private Instance<Command<?, ?>> mActions;

我们在使用通用类型时也遇到了注入问题,但是使用通配符类型帮助了我们。 - 查看更多信息:https://developer.jboss.org/thread/256783#sthash.1s6tuXsR.dpuf

参数化类型的规则已在 CDI 1.2 中阐明。查看规范的 Section 5.2.4 Assignability of raw and parameterized types