Введите MembersInjector<B>
и используйте его для ввода полей и методов B
:
class A {
@Inject A(MembersInjector<B> bInjector) {
...
B b = constructor.newInstance();
bInjector.injectMembers(b);
b.doSomething();
}
}
Лучшая часть этого подхода состоит в том, что Guice может подготовить привязки для B заранее.Если возникнут проблемы с инъекцией B, вы узнаете, когда создадите инжектор, обычно это запуск приложения.Это предпочтительнее, чем Injector.injectMembers()
, потому что это не сработает, пока не будет вызвано.