我不明白如何在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。如何指定设置为特定实例?

最佳答案

我认为您可能正在寻找解决“机器人腿”问题的方法。

有关详细信息,请参见Wiki here

关于java - Java Guice-对特定实例使用注入(inject)吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20749404/

10-10 01:05