我有一个模块,我在其中创建了一个提供程序,并且需要该提供程序作为同一模块中另一个提供程序的依赖项。但是,我的设置目前无法做到这一点。我该如何解决这个问题?还应该注意的是,所有依赖项都是第三方库,所以我认为我不应该在我的模块中绑定它(根据我读过的内容)。
不幸的是,由于保密协议,我无法提供实际代码,但可以在下面看到依赖层次结构的示例:
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;
}
}
Run Code Online (Sandbox Code Playgroud)
简而言之,我需要创建一个自定义引擎,事先设置一些属性,然后将该引擎用作 Car 创建的依赖项(请注意,我完全知道我无法在模块中使用 @Inject 注释进行注入,但是,我只是将其作为对我想要实现的目标的参考)。