Solucionado (ver solução)
Solucionado
(ver solução)
2
respostas

Dúvida sobre Add Type e Infer Generic Type Arguments

Olá ,

Fiquei em dúvida quanto aos conceitos aqui ... mas fiz o seguinte no exercício :

Alterei de :

Map mapaDeContas = new HashMap();

Para :

Map<String, Conta> mapaDeContas = new HashMap<String, Conta>();


Isto seria o Add Type ao Map e ao HashMap a que vcs se referem , certo ?

Já quanto ao Infer generic type arguments , o que seria isso ?

Desde já agradeço a atenção ...

Abraço


Há duas opções válidas aqui: Podemos usar o Add type arguments to Map e, depois, novamente Add type arguments to HashMap;

Podemos escolher direto a opção Infer generic type arguments, que já fará tudo com apenas um comando.

2 respostas
solução!

Olá José,

A opção Add Type apenas adiciona os tipos dos parâmetros utilizados pela classe Map ou HashMap de acordo com aquilo que faz sentido no seu código. Por exemplo, considere o código abaixo:

Map contas = new HashMap();
contas.put("conta", new Conta());
Conta conta = (Conta) contas.get("conta");

A opção AddType apenas vai adicionar os parâmetros para as classes genéricas:

Map<String, Conta> contas = new HashMap<String, Conta>();

Já a opção Infer Generic Type Arguments, além de fazer o mesmo que a AddType faz, vai também remover os castings desnecessários depois da adição dos tipos nas classes genéricas. Veja o resultado no mesmo código depois de usar essa opção:

Map<String, Conta> contas = new HashMap<String, Conta>();
contas.put("conta", new Conta());
Conta conta = contas.get("conta");

Perceba que o casting agora não é mais necessário na terceira linha já que indicamos que o Map trabalha com o tipo Conta.

Estava com a mesma dúvida, obrigado Jeferson.