uso:
(tipo variável instanceof class | interface)
efeito:
O operador instanceof é usado para determinar se o objeto anterior é uma instância da classe seguinte ou sua subclasse ou classe de implementação. Se sim, retorne verdadeiro; caso contrário, retorne falso.
Perceber:
・O tipo de tempo de compilação do operando na frente de instanceof é o mesmo da classe a seguir ou tem um relacionamento de herança pai-filho com a classe a seguir, caso contrário, ocorrerá um erro de compilação.
Um exemplo simples:
Copie o código do código da seguinte forma:
/**
* operador instanceof
* @autor Administrador
*
*/
classe pública TestInstanceof {
public static void main(String[] args) {
//Use a classe Object ao declarar hello, então o tipo compilado de hello é Object
//A classe Object é a classe pai de todas as classes, mas o tipo real de hello é String
Objeto olá = "Olá";
//String é uma subclasse de Object e pode executar a operação instanceof e retornar true
System.out.println("A string é uma instância da classe de objeto:"
+ (olá instância do objeto));
//verdadeiro
System.out.println("A string é uma instância de String:"
+ (olá instância de String));
//falso
System.out.println("A string é uma instância da classe Math:"
+ (olá instância de Math));
//String implementa a interface Comparable, então ela retorna true
System.out.println("A string é uma instância da classe Comparable:"
+(olá instância de Comparável));
/**
* String não é a classe Math nem a classe pai da classe Math, portanto o código a seguir é compilado incorretamente
*/
//String a = "olá";
//System.out.println("A string é uma instância da classe Math:"
// + (uma instância de Math));
}
}
Resultados em execução:
Copie o código do código da seguinte forma:
Se a string é uma instância da classe de objeto: true
Se a string é uma instância de String: true
Se a string é uma instância da classe Math: false
Se a string é uma instância da classe Comparable: true
Normalmente, antes de realizar a conversão forçada de tipo, primeiro é determinado se o objeto anterior é uma instância do último objeto e se a conversão pode ser bem-sucedida, garantindo assim a robustez do código.