Operador instanceof em Java

Este post mostra o que é e como utilizar o operador instanceof em Java, além de mostrar exemplos para melhorar o seu entendimento

Wolmir Cezer Garbin por Wolmir Cezer Garbin - - Java - TUTORIAL

Última atualização em: | 21236 Visualizações

Operador instanceof no Java

O instanceof é um operador que permite testar se um objeto é uma instância de um tipo específico de uma class, subclass ou interface.

O instanceof em java também é conhecida como operador de comparação de tipos, isso porque compara a instância com o tipo.

Integer code = 1;
System.out.println(String.format("Value is an integer instance? %s", code instanceof Integer));

A saída será: Value is an integer instance? true

E seu retorno é true (caso a instância seja do tipo comparado) ou false.

Exemplo simples do uso de instanceof

Este exemplo mostra como determinar se um objeto é uma instância de

class InstanceofSample {
    public static void main(String args[]) {
        InstanceofSample s = new InstanceofSample();
        System.out.println(s instanceof InstanceofSample);
    }
}  

A saída será true.



Usando instanceof em subclasses

Um objeto do tipo subclasse também é um tipo de classe pai. Por exemplo, se a classe Cat estender Animal, o objeto Cat poderá ser referido pela classe Cat ou Animal.

Veja o exemplo:

public class Animal {
    public static void main(String[] args) {
        Cat cat = new Cat();
        System.out.println(cat instanceof Animal);
        System.out.println(cat instanceof Cat);
    }
}

class Cat extends Animal {
}

A saída será:

true
true

instanceof com uma variável que tem valor null

Se aplicarmos o operador instanceof com uma variável que possui valor null, ele retornará false.

System.out.println(null instanceof Integer);

A saída será: false

Note que caso a instância tenha valor null o retorno será sempre false.

Usando como base o mesmo exemplo anterior temos:

public class Animal {
    public static void main(String[] args) {
        Cat cat = null;
        System.out.println(cat instanceof Animal);
        System.out.println(cat instanceof Cat);
    }
}

class Cat extends Animal {
}

A saída será:

false
false

Note que não teremos problema de NullPointerException usando o operador instanceof.

Não esqueca de deixar suas dúvidas nos comentários e compartilhar este post.


Apoiadores

Publique seu post no Receitas de Código

Aguarde, estamos trabalhando para que você possa publicar sua postagem no Receitas de Código!