使用@inject注释创建子类的实例

时间:2018-11-05 09:21:36

标签: java dependency-injection guice

我关注以下使用Google guice的DI 我有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实例,它们为null。

我的问题是:

  1. 在不调用“ new”或调用Injector实例的情况下继续b1,b2时,我需要编辑什么?

  2. 如果不可能1,那么创建这么多子类B1,B2 ...,B10的实例的正确解决方案是什么?

0 个答案:

没有答案