我有这个领域:
@Inject(optional=true)
@Named(NAMED_ERROR_HANDLER)
private PolymorphicDispatcher.ErrorHandler<IScope> errorHandler = new PolymorphicDispatcher.NullErrorHandler<IScope>();
我需要覆盖默认绑定(NullErrorHandler
)。我怎么做?
我有这个领域:
@Inject(optional=true)
@Named(NAMED_ERROR_HANDLER)
private PolymorphicDispatcher.ErrorHandler<IScope> errorHandler = new PolymorphicDispatcher.NullErrorHandler<IScope>();
我需要覆盖默认绑定(NullErrorHandler
)。我怎么做?
我没有PolymorphicDispatcher.ErrorHandler
和儿子,但是这个绑定应该可以完成工作:
bind(new TypeLiteral<PolymorphicDispatcher.ErrorHandler<IScope>>(){})
.annotatedWith(Names.named(NAMED_ERROR_HANDLER))
.to(MyImpl.class);
MyImpl
就像这样:
public class MyImpl implements PolymorphicDispatcher.ErrorHandler<IScope> {
// methods from interface
}
基本原理在你搜索的时候解释到这里TypeLiteral
。(抱歉,该部分附近没有 HTML-ID 或锚点)。