Aller au contenu

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 :

  • s est bien un String

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 type
  • false → si null

➡️ 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é

  • instanceof teste le type réel
  • utile avant un cast
  • null n’est jamais une instance

C’est un outil simple mais très utilisé en Java pour sécuriser le code.


Voir aussi