Map
キーがジェネリック型Key<T>
で、値が型であるaがありますList<T>
。キーがのインスタンスである場合Key<String>
、値はである必要がList<String>
あり、同じルールが他のキーと値のペアに適用されます。私は以下を試しましたが、コンパイルされません:
Map<T, List<T>> map;
現在、私はそれを「部分的な」ジェネリックで宣言する必要があります。
Map<Object, List> map;
私はこれが悪いことを知っていますが、私は現在これ以上の選択肢はありません。この状況でジェネリックを使用することは可能ですか?
アップデート
たぶん私は自分の問題を明確に表現していませんでした。次のことができるマップが必要です。
map.put(new Key<String>(), new ArrayList<String>());
map.put(new Key<Integer>(), new ArrayList<Integer>());
そして、次のコードはコンパイルしないでください:
map.put(new Key<String>(), new ArrayList<Integer>());
キーと値は常に同じジェネリック型である必要がありますが、ジェネリック型は任意であり、マップを拡張することは明らかに私の要件を満たしていません。