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

Erro no getNumeroMatricula

Segue abaixo uma parte do código da classe Curso:

public void matricula(Aluno mat) {
        this.alunosDoCurso.add(mat);
        this.matriculaParaAluno.put(alunosDoCurso.getNumeroMatricula(), alunosDoCurso);
    }

Quando vou salvar da a seguinte mensagem no erro: "The method getNumeroMatricula não está definido no Set"

Na minha classe Aluno o metodo getNumeroMatricula está definido direitinho.

public int getNumeroMatricula() {
        return numeroMatricula;
    }
6 respostas
solução!

Boa tarde, Felipe! Como vai?

O problema é que vc implementou errado o método matricula()! A implementação correta seria essa aqui:

public void matricula(Aluno aluno) {
    // adiciona no Set de alunos
    this.alunos.add(aluno);

    // cria a relação no Map
    this.matriculaParaAluno.put(aluno.getNumeroMatricula(), aluno);
}

Perceba que os parâmetros passados para o mapa matriculaParaAluno são a matrícula do aluno e o próprio aluno, nessa ordem! Entretanto, no seu código, vc está tentando invocar o método getNumeroMatricula() do Set alunosDoCurso. Mas como um Set não tem esse método, vc acabe tendo esse erro que vc citou!

Faça as mudanças aí em seu código que o problema será resolvido! Qualquer coisa é só falar!

Grande abraço e bons estudos!

Corrigiu professor. Eu achava que o parametro aluno era uma variável e apenas mudei o nome por isso tava dando errado.

public void matricula(Aluno aluno // achava que isso era uma variável.) {
    // adiciona no Set de alunos
    this.alunos.add(aluno);

Mto bem, Felipe! Na realidade vc poderia sim mudar o nome do parâmetro aluno! Mas uma vez que tenha mudado, tem que refletir essa mudança no resto do código do método, por exemplo:

public void matricula(Aluno mat) {
     this.alunosDoCurso.add(mat);
     this.matriculaParaAluno.put(mat.getNumeroMatricula(), mat);
}

Grande abraço e bons estudos!

Valeu professor. obrigado por solucionar a dúvida. Você tem algum pdf que pode auxiliar no java web?

Por nada, Felipe! Eu indico os cursos de Java Web aqui da Alura mesmo que dá pra vc ver mesmo offline usando o aplicativo mobile da plataforma. Em relação ao PDF, no site da Caelum vc encontra a apostila do curso FJ-21 que trata justamente sobre Java Web. Ela é pública e vai fazer uma excelente dobradinha com os cursos aqui da Alura!

Segue o link: https://www.caelum.com.br/download/caelum-java-web-fj21.pdf

Grande abraço e bons estudos!

Obrigado professor, abraços.