instanceofmot-clé est un opérateur binaire utilisé pour tester si un objet (instance) est un sous-type d'un type donné.
Imaginer:
interface Domestic {}
class Animal {}
class Dog extends Animal implements Domestic {}
class Cat extends Animal implements Domestic {}
Imaginez un dog objet , créé avec Object dog = new Dog(), puis:
dog instanceof Domestic // true - Dog implements Domestic
dog instanceof Animal // true - Dog extends Animal
dog instanceof Dog // true - Dog is Dog
dog instanceof Object // true - Object is the parent type of all objects
Cependant, avec Object animal = new Animal();,
animal instanceof Dog // false
parce que Animalc'est un supertype Doget peut-être moins «raffiné».
Et,
dog instanceof Cat // does not even compile!
En effet, ce Dogn'est ni un sous-type ni un supertype de Cat, et il ne l'implémente pas non plus.
Notez que la variable utilisée dogci-dessus est de type Object. Il s'agit de montrer qu'il instanceofs'agit d'une opération d' exécution et nous amène à un cas d'utilisation: réagir différemment en fonction d'un type d'objets à l'exécution .
Choses à noter: expressionThatIsNull instanceof Test faux pour tous les types T.
Bon codage.