Я использую Guice для внедрения зависимостей, но в моем конкретном случае использования это дает мне эту ошибку:
Классы должны иметь либо один (и только один) конструктор, аннотированный @Inject, либо конструктор с нулевым аргументом, который не является приватным
Я потратил много времени на это, но я все еще не могу понять, почему он не может внедрить зависимость. Кто-нибудь может взглянуть на это?
Моя структура классов выглядит следующим образом:
interface A {
}
Класс B реализует A
Class B implements A {
@Inject
B(String para1, MyClass B) {
// do something
}
}
Модуль Guice выглядит так:
@AllArgsConstructor
public class GuiceModule extends AbstractModule {
@Override
protected void configure() {
bind(A.class).to(B.class);
}
@Provides
public MyClass provideMyClass() {
return new MyClass();
}
@Provides
public String provideString() {
return "string";
}
}
В каком-то другом классе я учусь:
@Inject A a;