私は依存性注入に Guice を使用しており、 を返すプロバイダーを作成しました HashMap<String, HashMap<String, String>>。HashMap.classこのプロバイダーとバインドするにはどうすればよいですか?
これを見ましたTypeLiteralが、 のHashMap値 (V)の使い方がわかりませんでしたHashMap<K,V>。したがって、Vin<K,V>を Object に置き換えただけです。現在、私の醜いバインディングは以下のように見えますが、これには明らかな欠点があります。HashMap<String, String>さらに値を取得するには、オブジェクトを取得してキャストする必要があります。ただし、これは機能しますが、より良い提案を探しています。
binder().bind(new TypeLiteral<Map<String, Object>>() {}).toProvider(
(Class<? extends Provider<? extends Map<String, Object>>>) TestProvider.class);