1
클래스 A를 GIN 어딘가에 주입하고 싶습니다. 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의 인스턴스 팩토리를 사용하기 위하여는 A의 생성자를 수정 요구와 C이다 GIN을 사용하고 A 생성자의 상용구 코드를 피하십시오?
이 내가 다른 식별자를 가진 다른 인스턴스를 생성 할 경우에도 작동 ? – Fedy2
예, 이전에 A의 새 인스턴스를 생성하려면 '제공자'에게 제공해야하는 다음 ID를 알려 주어야합니다. 예를 들어'MyModule.nextId = "what anything";와 같은 정적 인 방식으로; –
테스트를 거쳐 정상적으로 작동합니다. – Fedy2