У меня есть класс, который выглядит как
class MyClass {
private final int size;
@Inject
public MyClass(final int size) {
this.a = a;
}
}
Мой класс модуля, который предоставляет экземпляр MyClass
, выглядит как
public class MyClassModule extends AbstractModule {
@Override
protected void configure() {
bind(Integer.class).annotatedWith(Names.named("size")).toInstance(1000);
}
@Provides
@Singleton
public MyClass providesMyClass(@Named("size") int size) {
return new MyClass(size)
}
Когда мой класс приложения использует объект MyClass
Я вижу эту ошибку -
com.google.inject.ConfigurationException: Guice configuration errors: | 1) Could not find a suitable constructor in java.lang.Integer. Classes must have either one (and only one) constructor annotated with @Inject or a zero-argument constructor that is not private. | at java.lang.Integer.class(Integer.java:52) | while locating java.lang.Integer | for parameter 0
Где происходит ошибка?(Не дубликат this , поскольку я не внедряю переменную непосредственно в класс, а через поставщика)