【发布时间】:2018-10-31 11:18:55
【问题描述】:
给定以下类
private static class ProducedInSubClass {
}
private static class ProducedInSuperClass {
}
public static class SuperClass {
@Produces
public ProducedInSuperClass producedInSuperClass = new ProducedInSuperClass();
}
public static class SubClass extends SuperClass {
@Produces
ProducedInSubClass producedInSubClass = new ProducedInSubClass();
}
public static class BeanWithSubClass {
@Inject
SubClass subClass;
@Inject
ProducedInSuperClass producedInSuperClass;
@Inject
ProducedInSubClass producedInSubClass;
}
ProducedInSuperClass 的注入不满足。这与 CDI-Spec 第 4.2 章是一致的,我知道。
为了完成这项工作,我需要通过
扩展子类 @Produces
ProducedInSuperClass producedInSuperClassInSubClass = producedInSuperClass;
谁能解释一下?为什么 Injects、Annotations Interceptors... 是继承的而不是 Producers?
【问题讨论】:
标签: java inversion-of-control cdi weld