Согласно ThrowingProvider документации Guice У меня есть следующий интерфейс:Guice ThrowingProvider проблема
public interface IConfigurableProvider<T> extends ThrowingProvider<T, ConfigException> {}
У меня есть несколько классов, которые реализуют этот интерфейс, давайте предположим, у меня есть следующий:
public class SomethingProvider extends ConfiguredProvider implements IConfigurableProvider<Something> {}
Из курс этого класса реализует необходимый метод:
public Something get() throws ConfigException { /* ... */ }
В моем модуле, у меня есть следующий код в MyModule.java
ThrowingProviderBinder.create(binder())
.bind(IConfigurableProvider.class, Something.class)
.to(SomethingProvider.class);
Но когда я начинаю мое заявление следующее сообщение об ошибке производства:
6) No implementation for com.package.Something was bound.
while locating com.package.Something
for parameter 5 at com.package.OtherClass.<init>(OtherClass.java:78)
at com.package.MyModule.configure(MyModule.java:106)
Я не знаю, где я должен начать искать ошибки ,
Update: Он обеспечивает ту же ошибку, даже если я установить масштаб, а также:
ThrowingProviderBinder.create(binder())
.bind(IConfigurableProvider.class, Something.class)
.to(SomethingProvider.class)
.in(Singleton.class);
Как было принято в ответе, я неправильно понял использование «ThrowingProviderBinder». Инъекционный конструктор должен ждать провайдера вместо предоставленного объекта (и должно быть обработано проверенное исключение). –