使用 Guice 方法注入不像 setter

Using Guice method injection not as setter

使用方法注入是一种不好的做法,而不是 setter?

假设我只需要一个变量来执行一项任务

@Inject
public void doThing(@Named(booleanA) boolean A) {
if (A) {
   ..
} else {
  ...
}

我应该经历保留实例变量的麻烦吗?

boolean A;
@Inject
public void setA(@NAmed(booleanA) boolean A) {
  this.A = A;
}

public void doThing() {
  ...
}

是的,您应该:Guice 无法知道何时您希望完成该任务,并且它不打算自己完成工作,只是为了设置准备工作。