2013-02-12 56 views
4

我在我的应用程序结合的类型的两个命名实例:使用命名的注释与吉斯提供商

bind(Foo.class).toProvider(FooProvider.class); 
bind(Foo.class).annotatedWith(Names.named("prime")).toProvider(FooPrimeProvider.class); 

我有想用每一个实例的类。由于技术原因,这个类不能直接注入的情况下,一定要注提供商的实例:

class Bar { 
    @Inject static Provider<Foo> fooProvider; 
    @Inject @Named("prime") static Provider<Foo> fooPrimeProvider; // WRONG! 
} 

的问题是,FooPrime注入上述未注射名为“素”的实例,它是注射供应商命名为“素数”,这当然不是我想要的。

我该如何告诉Guice为名为“prime”的Foo实例注入提供者?

+0

难道是行为不端?这看起来应该像你想要的那样工作。 – 2013-02-13 00:29:52

回答