0
我有一个模块,我在其中创建一个提供程序,并且该提供程序需要作为另一个提供程序在同一模块中的依赖项。但是,这对我的设置目前不可行。我该如何解决这个问题?还应该注意的是,所有的依赖都是第三方库,所以我相信我不应该在我的模块中绑定这个(根据我读过的)。Guice:依赖注入@provides提供程序
不幸的是,由于NDA我不能提供实际的代码,而是依赖层次的例子可以在下面看到:
public MyModule extends AbstractModule {
@Override
protected void configure() {}
@Singleton
@Provides
public Engine provideEngine(){
Map<String, String> engineProperties = new HashMap<>();
engineProperties.put("brand", "some brand");
engineProperties.put("capacity", "2.6 litres");
return new Engine(engineProperties);
}
@Inject
@Provides
public Car provideCar(Engine engine){
Car car = new Car(engine);
return car;
}
}
是短暂的,我需要创建一个自定义的发动机,设立一些属性然后使用该引擎作为汽车创建的依赖项(请注意,我完全知道我无法在模块中使用@Inject注释注入,但是,我只是将其作为参考以引用我想要实现的内容)。
我删除了@Inject,并尝试系统化依赖对象,即汽车提供商内的引擎,并且返回空值。似乎我在这里错过了一些东西。 – aDiT
如果没有看到你的代码,或者(对于NDA来说)一个在可运行代码中显示相同问题的SSCCE,将很难移动到这里。不过,要清楚的是,你*会让Guice调用这些方法,而不是手动调用任何'@Proced'-annotated方法,对吧? –
是的,我让Guice调用这些方法。我会用正在运行的代码更新这些代码,请稍等片刻。 – aDiT