Я играю с Dagger2, чтобы понять, как это работает. Я только что создал базовый проект "hello dagger2", но он падает
У меня три класса: Хлеб, Мука и Вода. Хлеб зависит от Муки и Воды.
класс Хлеб:
public class Bread {
private Water water;
private Flour flour;
@Inject
public Bread (Water water, Flour flour){
this.water = water;
this.flour = flour;
}
}
класс Вода:
public class Water {
int waterQuantity;
public Water(int waterQuantity){
this.waterQuantity = waterQuantity;
}
}
класс Мука:
public class Flour {
private int flourQuantity;
public Flour(int flourQuantity){
this.flourQuantity = flourQuantity;
}
}
Также я реализовал модуль и компонент
Модуль:
@Module
public class BreadModule {
@Provides @Singleton
Bread provideBread(Water water, Flour flour){
return new Bread(water, flour);
}
}
Компонент:
@Singleton
@Component (modules = {BreadModule.class})
public interface BreadComponent {
Bread getBread();
}
Ошибка, с которой я сталкиваюсь:
Ошибка: (13, 11) ошибка: com.example.llisas.testingdagger2.model.Water не может быть предоставлен без конструктора @Inject или из метода, аннотированного @Provides. com.example.llisas.testingdagger2.module.BreadModule.provideBread(com.example.llisas.testingdagger2.model.Вода вода, com.example.llisas.testingdagger2.model.Мука мука) [параметр: com.example.llisas.testingdagger2 .model.Вода вода]
Что я делаю неправильно?