注入通用类型时 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。
由于 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。