Duvida Genericos

1 resposta
E

Pessoal,

no livro da Kathy(portugues SCJP 1.5) na pagina 339, questao 8. Me parece que a resposta do livro esta errada.

A questão é a seguinte:
Vou colocar somente aonde esta o erro e comentario.

// Perceba que aqui nao esta indicando que tipo é o Map. Nao é do tipo String,Integer…
private Map accountTotals = new HashMap();

// Agora a questao diz que vc pode trocar isso:
Integer total = (Integer) accountTotals.get(accountName);

//Por isso:
Integer total = accountTotals.get(accountName);

Essa mudanca corresponde a resposta E. Que no livro diz que é uma das corretas.
Só que aprendi que se o conjunto, no caso o Map, nao estiver com o tipo definido(String,Integer…) nao tem como compilar.
A nao ser se fizer o cast.

Alguem poderia confirmar isso!?

Obrigado
[]'s
Marcelo

1 Resposta

julianom

Oi,

Você está certo, se a coleção não estiver com tipo, todos elementos são Object, e é obrigatório fazer o cast para o tipo correto antes de utilizá-los.
O Java era assim antes da versão 1.5.

Se a coleção fosse assim: Map<String, Integer> accountTotals… aí daria.

flw.

Criado 4 de fevereiro de 2011
Ultima resposta 4 de fev. de 2011
Respostas 1
Participantes 2