У меня есть иерархия классов следующим образом:
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"))