Duvida sobre Conversão

:smiley: Olá Pessoal!
Sobre o código abaixo:

public boolean equals(Object o) {
Aluno outro = (Aluno)o;
return this.nome.equals(outro.nome);
}

:arrow: Essa operação:

É uma coisa que acontece muito em java. Mais nunca entendi direito o que realmente acontece ali.
Seria algum tipo de conversão?
Vamos dizer que eu receba um objeto que não seja da classe Aluno, o que acontece?

:lol:Vlww

É um cast (uma espécie de conversão que restringe o tipo do objeto, dando acesso a métodos mais específicos).

Se você passar um objeto de outro tipo que não aluno, acorre um ClassCastException.

Para evitar esse erro, faça algo como:

public boolean equals(Object o) {
    if (!(o instanceof Aluno)) {
        return false;
    }
    Aluno outro = (Aluno)o;
    return this.nome.equals(outro.nome);
}