Я довольно новичок в Dagger и нахожу немного сложным для понимания тело компонента, имея два конкретных вопроса, связанных с реализацией компонента:
1)
@Singleton
@Component(modules = { UserModule.class, BackEndServiceModule.class })
public interface MyComponent {
BackendService provideBackendService();// Line 1
void inject(Main main); // Line 2
}
Что такоецель линии 2?также будет ли создан экземпляр backendService, даже если строка 1 будет удалена?
, а также в приведенном ниже коде, где генерируется реализация вышеуказанного интерфейса, что на самом деле делает component.inject (this)?
public class Main {
@Inject
BackendService backendService; //
private MyComponent component;
private Main() {
component = DaggerMyComponent.builder().build();
component.inject(this);
}
private void callServer() {
boolean callServer = backendService.callServer();
if (callServer) {
System.out.println("Server call was successful. ");
} else {
System.out.println("Server call failed. ");
}
}
, а также почему бэкэнд-сервис не был получен с помощью component.provideBackendService ()