考虑以下结构:
public class WaterWorld implements IWorld {
...
@Inject
CreationMode creationMode;
@Override
public final void init() {
WorldModule.getComponent().inject(this);
}
...
}
是否有可能为WaterWorld
得到的依赖,如果Component
具有以下结构:
void inject(IWorld world);
我得到空这样。但是,如果我尝试做下面的
void inject(WaterWorld world);
那么它的工作原理。不过,我有许多类实现IWorld
。我想做的事是这样:void inject(IWorld world);
如何做到这一点,还是有一些其他的通用解决方案?
不,匕首会一直注入在inject(Foo foo)
方法指定的类。它将在父类型注入的对象,但它不会在子类中注入的对象。
匕首使用指定生成用于注射代码的类型,但如果你没有指定具体的类,然后匕首根本不知道这件事情,并不会注入其字段。
注意:你不给任何具体的例子,但它看起来像你可以很好的使用构造器注入代替,它具有无需手动注射或注射在组件的方法。如果你有相同的接口的多种实现你甚至可以看看多绑定匕首。