Ho tre classi CircleBuilder
, SquareBuilder
e TriangleBuilder
che implementano l'interfaccia ShapeBuilder
.Qual è il modo migliore per iniettare una lista con google-guice?
Ho bisogno di inizializzare il mio FormBuilder
e in particolare un BuilderList
(estendendo List<ShapeBuilder>
) con un'istanza di ogni classe con google-guice.
Qual è il modo migliore?
so circa i metodi di provider e cose di questo tipo:
@Provides
FormBuilder provideFormBuilder() {
DatabaseTransactionLog instance = new FormBuilder (<numerous parameters>);
ShapeBuilder builder = null ;
builder = new CircleBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
builder = new SquareBuilder(<numerous parameters>) ;
instance.addBuilder(builder) ;
// And so on
return instance;
}
ma vorrebbe dire che devo creare il mio FormBuilder
manualmente che sconfigge lo scopo di utilizzare Guice (perché FormBuilder
è l'elemento superiore nel mio grafico dell'oggetto).
Mi piacerebbe essere in grado di scrivere qualcosa del genere:
bind(BuilderList.class).to(CircleBuilder.class);
bind(BuilderList.class).to(TriangleBuilder.class);
bind(BuilderList.class).to(SquareBuilder.class);
Qualche idea?
Nota: MultiBinding richiede un altro vaso -> Guice-multibindings-3.0.jar –