与父母的Gu ..

chr*_*ann 9 java guice

当我需要调用也可注入的父构造函数时,如何处理Guice?例如,我有一个抽象的父类,它有一个构造函数,它注入了一个由所有派生子共享的对象,每个子代也有一个注入构造函数.

调用super()不会工作,因为Java希望我将对象作为参数传递而不是让Guice注入.

谢谢

编辑:我想知道我是否需要使用方法注入?

Col*_*inD 10

如果你没有使用Guice,你需要做同样的事情...声明父构造函数所需的任何参数作为每个子构造函数的参数,并将它们传递给super.

因此,如果您的抽象父类的构造函数采用a Foo,则子类的构造函数需要如下所示:

@Inject public ChildClass(Foo foo, Bar bar) {
  super(foo);
  this.bar = bar;
  ...
}
Run Code Online (Sandbox Code Playgroud)