我想用 GIN 在某处注入一个 A 类。A 类构造函数需要在运行时知道的 id 以及其他两个类 B 和 C。B 和 C 构造函数需要 A 的相同 id 作为参数。
这里是类的一个例子。
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)
{
...
}
}
如何在 A 注入期间将 id 传播到所有类?
一种解决方案是使用带有所有三个类的创建方法的 AssistedInjectionFactory,但这需要修改 A 构造函数才能使用工厂实例化 B 和 C。
还有其他方法可以使用 GIN 并避免 A 构造函数样板代码吗?