segunda-feira, 21 de junho de 2021

Java: Verificando a classe de um objeto (instanceof)

 Existem alguns casos em que é necessário verificar a classe de um objeto instanciado. Existe duas maneiras de verificar isso. A primeira é utilizando o operador instanceof, utilizado quando a classe é conhecida em tempo de compilação. A sintaxe é a seguinte:

[Objeto] instanceof [NomeDaClasse] 

Exemplo de Código:

Animal animal = new Cachorro();
if(animal instanceof Cachorro){
  //Entra aqui se a instância de animal for da classe Cachorro
}


Entretanto, pode haver casos em que você deverá fazer uma verificação de classe em tempo de execução. Você pode obter uma referência do tipo da classe através de um objeto Class. Tendo o objeto Class da classe que deseja, você pode utilizar o método isInstance para fazer a verificação.

Exemplo: 

Animal animal = new Cachorro();
Class classInfo = Cachorro.class;
if(classInfo.isInstance(animal)){
  //Entra aqui se a instância de animal for da classe Cachorro
}

Então é isso por hoje.