1
我想用GIN在某處注入類A。 A類構造函數需要一個在運行時知道的id和另外兩個類B和C.B和C構造函數需要與參數A相同的ID。如何在使用GIN注入時傳播值
這裏是一個類的例子。
public class A {
@Inject
public A(String id, B b, C c)
{
...
}
}
public class B {
@Inject
public B(String id)
{
...
}
}
public class C {
@Inject
public C(String id)
{
...
}
}
如何在注入期間將ID傳播到所有類?
一種解決方案是使用一個AssistedInjectionFactory具有用於所有三個類創建方法,但是這需要修改一個構造函數,以使用工廠來實例B和C
還有其他的方法來使用GIN並避免構造函數的樣板代碼?
這個作品也,如果我要創建具有不同ID的不同實例? – Fedy2
是的,以前要創建A的新實例,您必須對「提供者」說一聲,它必須提供的下一個ID是什麼。例如以'MyModule.nextId =「任意」的靜態方式;' –
經過測試並正常工作。 – Fedy2