Como declarar um mapa com genéricos variáveis?
eu tenho umMap
cujas chaves são do tipo genéricoKey<T>
e os valores são do tipoList<T>
. Se a chave é uma instância deKey<String>
, o valor deve ser umList<String>
e a mesma regra se aplica a qualquer outro par de valores-chave. Eu tentei o seguinte, mas não compila:
Map<T, List<T>> map;
No momento, tenho que declará-lo com genéricos "parciais":
Map<Object, List> map;
Eu sei que isso é ruim, mas atualmente não tenho melhor escolha. É possível usar genéricos nesta situação?
ATUALIZAR
Talvez eu não tenha expressado meu problema claramente. Eu quero um mapa que seja capaz de:
map.put(new Key<String>(), new ArrayList<String>());
map.put(new Key<Integer>(), new ArrayList<Integer>());
E o código a seguir não deve compilar:
map.put(new Key<String>(), new ArrayList<Integer>());
A chave e o valor devem sempre ter o mesmo tipo genérico, enquanto o tipo genérico pode ser qualquer, e obviamente estender um mapa não atende ao meu requisito.