使用Lombok Builder注入构造函数依赖项

时间:2018-04-30 19:17:44

标签: java dependency-injection guice lombok

我有一个类文件,如下所示

import com.google.inject.Inject;
import lombok.Builder;

@Builder
public class A {
  private final B objB;
  private final C objC;

  @Inject
  public A(B b, C c) {
     this.objB = b;
     this.objC = c;
  }
}

现在,如果我必须在另一个类中使用此对象,那么.builder()方法将处理正在注入的依赖项。

 public class Main {
    public void doSomething() {
       A a = A.builder();
       a.getObjB(); // Will it be null ?
       a.getObjC(); // Will it be null ?

1 个答案:

答案 0 :(得分:0)

注入始终只有当你让guice处理实例创建时才会起作用。

所以当你使用

@Inject
private A a;

guice会发现它需要一个B和一个C来创建A并注入它。

但是当你自己实例化A时,如果通过new或通过builder() guice不知道实例创建,则无关紧要,因此在你的例子中,B和C将为null。 / p>