У меня странный код, но я верю, что вы можете мне помочь! Я использую Guice
, и у меня есть что-то вроде этого.
@Override
protected void configure() {
MapBinder<String, Foo> mapBinder = MapBinder.newMapBinder(binder(), String.class, Foo.class);
mapBinder.addBinding("key1").toProvider(() -> new FooImpl(parameter1));
mapBinder.addBinding("key2").toProvider(() -> new FooImpl(parameter2));
}
Теперь моя проблема в том, что FooImpl
не только имеет конструктор с определенным параметром для каждого ключа, но также имеет @Inject
внутри класса
public class FooImpl {
private Object parameter;
@Inject
private SomeClass someClass
public FooImpl(Object parameter) {
this.parameter = parameter;
}
}
Что происходит в моем примере? @Inject
не работает
если в mapBinder
я делаю
mapBinder.addBinding("key2").toInstance(new FooImpl(parameter2));
Это работает, но я использую один и тот же экземпляр FooImpl
каждый раз, и это может принести мне некоторые проблемы из-за совпадения.
Я буду очень признателен, если кто-то может помочь мне с этим, который застрял на несколько дней.