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

Atribuição de hashMap em variável Map

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();
2 respostas
solução!

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!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software