2

我正在尝试将类型化对象注入服务类但得到

    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

要注入的字段是ILookup<IWS> lookup,绑定是bind(ILookup.class).toProvider(LookupProvider.class)

使用 @Provides 注释时一切正常,有什么想法吗?

4

1 回答 1

2

当您使用泛型类型时,您需要使用 TypeLiteral,例如:

bind(new TypeLiteral<ILookup<IWS>>(){}).toProvider(LookupProvider.class);

文档中 :

Java 还没有提供表示泛型类型的方法,所以这个类提供了。

于 2012-10-25T14:43:33.257 回答