如何在Guice中绑定此类型?

时间:2012-07-24 14:44:57

标签: dependency-injection guice

我有这个字段:

@Inject(optional=true)
@Named(NAMED_ERROR_HANDLER)
private PolymorphicDispatcher.ErrorHandler<IScope> errorHandler = new PolymorphicDispatcher.NullErrorHandler<IScope>();

我需要覆盖默认绑定(NullErrorHandler)。我该怎么做?

1 个答案:

答案 0 :(得分:1)

我没有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时,会解释here的基本原则。 (抱歉,该部分附近没有HTML-ID或锚点。)