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