0

Guice と MapBinder を使用しています。次の Service インターフェイスがあります。

public interface IService<K, V>

および 2 つの実装:

public class AService implements IService<String, String>
public class BService implements BService<String, String>

次のようにMapBinderを使用したい:

MapBinder<String, IService<String, String>> mapBinder =
            MapBinder.newMapBinder(binder(), String.class, WHAT_TO_DO_HERE);

できないから

IService<String, String>.class 

WHAT_TO_DO_HERE の部分で、最初に考えたのは、IService のマーカー インターフェイスを作成してから先に進むことでした。私の質問は次のとおりです。

  1. これをGuiceで行うためのベストプラクティスは何ですか?

  2. ここでマーカーインターフェースのアイデアに問題はありますか? もしそうなら、なぜですか?

ありがとう

4

1 に答える 1

1

TypeLiteral (Javadoc)を試すことができます:

WHAT_TO_DO_HERE = new TypeLiteral<IService<String, String>>(){};

および JavadocMapBinderには、適切なメソッドがありますが、クラスも にnewMapBinderラップする必要があります。StringTypeLiteral

于 2013-04-21T12:11:44.440 に答える