我正在尝试将类型化对象注入(inject)到服务类中,但得到
com.google.inject.ConfigurationException: Guice configuration errors:
1) No implementation for com.bookpac.utils.appserver.ILookup<com.bookpac.server.common.IWS> was bound.
while locating com.bookpac.utils.appserver.ILookup<com.bookpac.server.common.IWS>
for parameter 0 at com.bookpac.server.LookupService.<init>(LookupService.java:13)
while locating com.bookpac.server.LookupService
要注入(inject)的字段是ILookup<IWS> lookup
,
绑定(bind)是bind(ILookup.class).toProvider(LookupProvider.class)
当使用 @Provides 注释时,一切正常,有什么想法吗?
最佳答案
当您使用泛型类型时,您需要使用 TypeLiteral,例如:
bind(new TypeLiteral<ILookup<IWS>>(){}).toProvider(LookupProvider.class);
来自documentation :
Java doesn't yet provide a way to represent generic types, so this class does.
关于java - 使用 Guice 的通用类型提供程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13071028/