我的类层次结构如下:
interface Pen{}
class SimplePen implements Pen{}
class ComplexPen implements Pen{}
使用它的代码如下
class A{
public A(Pen pen){}
}
class B{
public B(ComplexPen pen){}
}
所以我想做的是,默认情况下,Pen应该绑定到SimplePen,而ComplexPen应该仅在明确询问时才绑定,例如B类。
bind(Pen.class).to(SimplePen.class).in(Singleton.class)
bind(ComplexPen.class)
上面的Guice配置在运行时失败,提示implementation of Pen already bound
。我该怎么办?
请注意,我正在尝试避免使用.annotatedWith(Names.named("complexPen"))
答案 0 :(得分:0)
糟糕,我提供的代码有效。我有一些额外的代码正在创建更多的绑定。
bind(Pen.class).to(SimplePen.class).in(Singleton.class)
bind(ComplexPen.class)