Esse código, sugerido na apostila, não funciona ou eu que não consegui entender a proposta do exercício?
// cria o mapa Map mapaDeContas = new HashMap();
Esse código, sugerido na apostila, não funciona ou eu que não consegui entender a proposta do exercício?
// cria o mapa Map mapaDeContas = new HashMap();
A proposta é que você chege no modo que usa generics
usando as ferramentas de sugestão que o Eclipse oferece.
Usando o Map
como você colocou, você tem que ficar dando cast pois está trabalhando com Object
, exemplo:
Conta contaDoDiretor = (Conta) mapaDeContas.get("diretor");
Você tem que colocar o (Conta)
antes(fazer o cast) para dizer que o que tem no valor daquele Map
é uma Conta
e poder usar a varivável com comportamentos de um objeto Conta
. Caso contrário seria um Object
sem seus atributos
e métodos
de Conta
.
Ao fazer uso do generics
você pode criar um mapa já com os objetos específicos que você quer, sem precisar ter que fazer cast depois, ficando assim:
// cria o mapa
Map<String, Conta> mapaDeContas = new HashMap<String, Conta>();
Aqui você está, explicitamente, dizendo que a chave do Map
vai ser String
e o valor Conta
.
Muito obrigado!