Создание экземпляров дочерних классов с аннотацией @inject - PullRequest
0 голосов
/ 05 ноября 2018

Я беспокоился о DI, используя Google Guice следующим образом У меня есть класс B, и его дети классы B1, B2. Все классы используют конструктор по умолчанию.

Затем я создаю класс связывания:

public Binding extends AbstractModule{
   bind(B1.class);
   bind(B2.class);
}

И класс приложения, который я объявляю:

public Application{
   @Inject
   B1 b1;

   @Inject
   B2 b2;
}

Я могу напрямую использовать экземпляр b1 и b2 без вызова new B1 () или new B2 ().

Теперь я добавляю конструктор без параметра в класс B:

public B {
  public B(){}
}

Тогда я больше не могу использовать экземпляр b1, b2, они нулевые.

Мои вопросы:

  1. Что мне нужно отредактировать, чтобы продолжить b1, b2 без вызова «new» или вызова Injector?

  2. Если 1 невозможно, каково правильное решение для создания экземпляра такого количества дочерних классов B1, B2 ..., B10?

...