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