Java Guice ThrowingProvider问题

Java Guice ThrowingProvider问题,java,dependency-injection,guice,provider,Java,Dependency Injection,Guice,Provider,根据Guice的文档,我有以下接口: public interface IConfigurableProvider<T> extends ThrowingProvider<T, ConfigException> {} 在我的模块中,MyModule.java ThrowingProviderBinder.create(binder()) .bind(IConfigurableProvider.class, Something.class) .to(Som

根据Guice的文档,我有以下接口:

public interface IConfigurableProvider<T> extends ThrowingProvider<T, 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)

您需要插入
IConfigurableProvider
,而不是注入
Something

公共类其他类{
@注入
公共OtherClass(IConfigurableProviderSomethingProvider){
...
}
}

这是因为只有在
OtherClass
的代码(或任何使用
某物的实例的代码)中,您才能处理提供者抛出的异常,例如在您的情况下
ConfigException

但我不想修改构造函数。有什么方法可以实现我真正想要的吗?我想我会忘记
ThrowingProvider
,只需使用
Provider
接口,将源异常包装到
ProvisionException
,正如公认的答案指出的那样,我误解了
ThrowingProviderBinder
的用法。注入的构造函数应该等待提供程序,而不是提供的对象(并且应该处理选中的异常)。
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)
ThrowingProviderBinder.create(binder())
    .bind(IConfigurableProvider.class, Something.class)
    .to(SomethingProvider.class)
    .in(Singleton.class);
public class OtherClass {
  @Inject
  public OtherClass(IConfigurableProvider<Something> somethingProvider) {
    ...
  }
}