Внедрить зависимость конструктора с помощью Lombok Builder - PullRequest
0 голосов
/ 30 апреля 2018

У меня есть файл класса, как показано ниже

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 голосов
/ 01 мая 2018

Инъекция всегда работает, только когда вы позволяете guice иметь дело с созданием экземпляра.

Так что когда вы используете

@Inject
private A a;

Обнаружит, что ему нужны B и C, чтобы создать A и ввести его.

Но когда вы создаете экземпляр A самостоятельно, не имеет значения, если с помощью new или с помощью builder() guice не узнает о создании экземпляра, поэтому в вашем примере B и C будут нулевыми.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...