usage:
(tapez la variable instanceof class | interface)
effet:
L'opérateur instanceof est utilisé pour déterminer si l'objet précédent est une instance de la classe suivante, ou sa sous-classe ou classe d'implémentation. Si tel est le cas, renvoyez vrai ; sinon, renvoyez faux.
Avis:
・Le type de compilation de l'opérande devant instanceof est soit le même que la classe suivante, soit a une relation d'héritage parent-enfant avec la classe suivante, sinon une erreur de compilation se produira.
Un exemple simple :
Copiez le code comme suit :
/**
* opérateur instanceof
* @auteur Administrateur
*
*/
classe publique TestInstanceof {
public static void main (String[] arguments) {
//Utilisez la classe Object lors de la déclaration de hello, alors le type compilé de hello est Object
//La classe Object est la classe parent de toutes les classes, mais le type réel de hello est String
Objet bonjour = "Bonjour" ;
//String est une sous-classe d'Object et peut effectuer une opération instanceof et renvoyer true
System.out.println("La chaîne est-elle une instance de la classe d'objet :"
+ (bonjour instanceof Object));
//vrai
System.out.println("La chaîne est-elle une instance de String :"
+ (bonjour instanceof String));
//FAUX
System.out.println("La chaîne est-elle une instance de la classe Math :"
+ (bonjour instanceof Math));
//String implémente l'interface Comparable, elle renvoie donc true
System.out.println("La chaîne est-elle une instance de la classe Comparable :"
+(bonjour instanceof Comparable));
/**
* String n'est ni la classe Math ni la classe parent de la classe Math, donc le code suivant n'est pas compilé correctement
*/
//String a = "bonjour" ;
//System.out.println("La chaîne est-elle une instance de la classe Math :"
// + (une instance de Math));
}
}
Résultats en cours d'exécution :
Copiez le code comme suit :
Si la chaîne est une instance de la classe d'objet : true
Si la chaîne est une instance de String : true
Si la chaîne est une instance de la classe Math : false
Si la chaîne est une instance de la classe Comparable : true
Habituellement, avant d'effectuer une conversion de type forcée, il est d'abord déterminé si l'objet précédent est une instance de ce dernier objet et si la conversion peut réussir, garantissant ainsi la robustesse du code.