2013-12-23 3 views
1

Я не понимаю, как я могу использовать инъекцию в Guice для конкретного экземпляра. Я попытался это:Java Guice - используйте инъекцию для конкретного экземпляра?

@Inject(optional=true) 
    public void setCarpenter(@Named("setCarpenter") Carpenter carpenter){ 
     System.out.println("Assigned carpenter for Table"); 
     this.carpenter = carpenter; 
    } 


bind(Table.class).annotatedWith(Names.named("table1")).toInstance(new Table(4, new Metal())); 
bind(Table.class).annotatedWith(Names.named("table2")).toInstance(table); 
bind(Carpenter.class).annotatedWith(Names.named("setCarpenter")).toInstance(new Carpenter()); 

И он использует setCarpenter в обоих случаях таблицы. Как я могу указать, чтобы установить конкретный экземпляр?

ответ

1

Я думаю, что вы, вероятно, ищете решение проблемы «ноги робота».

Смотреть вики Подробности here

+0

Я знаю, что это. Может быть, для этого есть более простое/красивое решение? – Andrius

Смежные вопросы