Esse é o código da aula:
@Override
public boolean equals(Object obj) {
Aluno outroAluno = (Aluno) obj;
return this.nome.equals(outroAluno.nome);
}
Mas e se ao invés disso eu quisesse usar não apenas o nome do aluno, mas o nome do aluno junto com o numero de matricula? Como ficaria o equals e o hashcode?
Por exemplo, no equals eu queria algo como:
@Override
public boolean equals(Object obj) {
Aluno outro = (Aluno) obj;
if(this.nome.equals(outro.nome) && Integer.valueOf(this.numeroMatricula).equals(outro.numeroMatricula)) {
return true;
}
return false;
}
Já no hashCode, eu queria algo assim:
public int hashCode() {
return Objects.hash(this.nome, this.numeroMatricula);
}
Qual seria o melhor jeito de fazer um equals quando estivermos falando de vários critérios para estabelecer uma igualdade (nome, numero de matricula e outros objetos de diferentes tipos, por exemplo)?