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 に答える