Duvida sobre Conversão

1 resposta
programadormaia

: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

1 Resposta

M

É 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);
}
Criado 28 de fevereiro de 2009
Ultima resposta 28 de fev. de 2009
Respostas 1
Participantes 2