TL; DR - я хочу сделать это:
bind(FooFactory.class)
.annotatedWith(BarAnnotation.class)
.toProvider(FactoryProvider.newFactory(FooFactory.class, Foo.class));
Но используя Guice 3.0 FactoryModuleBuilder.
Вот мои настройки:
interface FooFactory {
public Foo create(Bar assisted);
}
class Foo {
@Inject
public Foo(Baz dependency, @Assisted Bar assisted) {}
}
class SomeComplicatedClass {
@Inject
public(@BarAnnotation FooFactory fooFactory) {}
}
ВGuice 2.0 Я могу сделать это:
bind(FooFactory.class)
.annotatedWith(BarAnnotation.class)
.toProvider(FactoryProvider.newFactory(FooFactory.class, Foo.class));
Но, похоже, нет эквивалента при использовании Guice 3.0 (с использованием FactoryModuleBuilder).
Примечание: @BarAnnotation здесь строго необходим.Я не могу это изменить.