2013-02-12 58 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

回答