3
respostas

Retorno get HashMap

Ao realizar o exercício o único retorno permitido pelo get do Map

Meu código:

public String buscaMatriculado(int key) { return this.matriculaParaAluno.get(key); }

Código de resposta do exercício:

public Aluno buscaMatriculado(int numero) { return this.matriculaParaAluno.get(numero); }

Não entendi esta diferença no retorno do método.

3 respostas

Oi Alexandre, a diferença é apenas no nome do parâmetro que recebemos no método. Você deu o nome de key e o exercício um outro nome: numero. O código é o mesmo, o nome que você dá para o paramêtro não faz diferença. O retorno usa o parametro para recuperar uma matrícula específica nos dois códigos, só que em um esse valor foi chamado de key e no outro de numero.

espero ter ajudado e bons estudos!

A minha dúvida é no tipo de retorno do método.

Quando coloco o tipo de retorno como Aluno o eclipse reclama. E sugere para que seja alterado para o tipo String.

O método foi adicionando na classe Aluno.

Chamada do metodo:

Aluno a1 = new Aluno("Rodrigo Turuni", 34672);
System.out.println(a1.buscaMatriculado(34672));

Meu método.

public String buscaMatriculado(int key) ;

Resposta do exercício

public Aluno buscaMatriculado(int numero);

Oi Alexandre, desculpe, você tem razão. Passou batido aqui o retorno. O retorno do método deve ser do tipo que você declarou no método. Há diferença entre retornar um objeto do tipo Aluno e retornar uma String.

Veja que no exercício é pedido que retorne o aluno que tenha a matrícula passada por parâmetro, portanto um objeto do tipo Aluno.

Na classe Curso temos um Map que associa um inteiro (numero de matrícula) a um Aluno:

private Map<Integer, Aluno> matriculaParaAluno = new HashMap<>();

e quando fazemos

this.matriculaParaAluno.get(numero);

retorna o aluno associado ao número passado como argumento.

Portanto, o método buscaMatriculado retorna um Aluno e não deve funcionar se você declarar o retorno como String. Se isso está acontecendo deve ser algum erro na classe Curso.

Poste o código da sua classe Curso aqui para eu dar uma olhada.