Java — instanceof (Vérification de type)
L’opérateur instanceof permet de vérifier si un objet est une instance d’une classe ou d’une interface.
1. Idée simple
instanceof vérifie :
➡️ le type réel d’un objet à l’exécution
2. Exemple simple
String s = "hello";
System.out.println(s instanceof String); // true
ici :
sest bien unString
3. Avec héritage
class Animal {}
class Dog extends Animal {}
Animal a = new Dog();
System.out.println(a instanceof Dog); // true
System.out.println(a instanceof Animal); // true
instanceof fonctionne avec la hiérarchie
4. Cas important : null
Object obj = null;
System.out.println(obj instanceof Object); // false
Résultat : false
Pourquoi ?
instanceof retourne :
true→ si l’objet existe et correspond au typefalse→ sinull
➡️ null n’est instance de rien
5. Utilisation pratique
if (obj instanceof String) {
String str = (String) obj;
}
permet de sécuriser un cast
6. Version moderne (Java 16+)
if (obj instanceof String str) {
System.out.println(str.length());
}
plus besoin de cast manuel
Pièges fréquents
- oublier que
null instanceof= false - faire un cast sans vérifier
- confusion avec type à la compilation
7. Questions classiques
Q1
instanceof sert à quoi ?
vérifier le type
Q2
null instanceof Object ?
false
Q3
pourquoi utiliser instanceof ?
éviter erreurs de cast
8. À retenir
- vérification à l’exécution
- fonctionne avec héritage
null→ toujours false
🧾 En résumé
instanceofteste le type réel- utile avant un cast
nulln’est jamais une instance
C’est un outil simple mais très utilisé en Java pour sécuriser le code.