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

Como pesquisar um aluno pelo nome e pela matricula

E se eu quiser pesquisar pelo nome e matrícula, o que eu devo fazer? Fiquei com essa dúvida, alguém consegue me ajudar ?

3 respostas

Tentei modificar o método equals assim:

    @Override
    public boolean equals(Object obj) {
        Aluno outroAluno = (Aluno) obj;
        if (this.nome.equals(outroAluno.nome) || this.matricula == outroAluno.matricula) {
            return true;
        }
        return false;
    }
solução!

Consegui resolver!!

Mandei o eclipse gerar os métodos equals(Object obj) e hashCode() e alterei o método equals para:

    @Override
    public boolean equals(Object obj) {
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Aluno other = (Aluno) obj;

//        Alterei abaixo para retornar true se encontrar o nome ou a matricula 
        if (matricula == other.matricula || nome == other.nome)
            return true;

        if (nome == null) {
            if (other.nome != null)
                return false;
        } else if (!nome.equals(other.nome))
            return false;
        return true;
    }

Pessoal, Também tive que mexer no método estaMatriculado(Aluno aluno):

public boolean estaMatriculado(Aluno aluno) {
        boolean verifica = false;
        for (Aluno outroAluno : alunos) {
            if(outroAluno.equals(aluno))
            verifica = true;
            break;
        }
        return verifica;
    }