Accéder au contenu principal
Documents
Tableaux JavaProgrammation orientée objet en JavaTraitement des fichiers en JavaIntroduction To JavaLes bases du langage JavaMots-clés Java

instanceof Mot-clé en Java

Le mot-clé instanceof en Java est un opérateur binaire utilisé pour tester si un objet est une instance d'une classe spécifique ou s'il implémente une interface particulière. Elle renvoie true si l'objet est une instance du type spécifié et false dans le cas contraire.

Utilisation

L'opérateur instanceof est principalement utilisé pour vérifier le type au moment de l'exécution, ce qui est particulièrement utile dans les scénarios impliquant le polymorphisme et le moulage.

Syntax

object instanceof class/interface
  • object: La référence à l'objet testé.
  • class/interface: La classe ou l'interface à vérifier.

Exemples

Exemple 1 : Utilisation de base

public class InstanceofExample {
    public static void main(String[] args) {
        String str = "Hello, World!";
        boolean result = str instanceof String;
        System.out.println("Is str an instance of String? " + result);
    }
}

Dans cet exemple, l'opérateur instanceof vérifie si la variable str est une instance de la classe String. Le résultat est true car str est bien un String.

Exemple 2 : L'utilisation instanceof avec Interfaces

interface Animal {}
class Dog implements Animal {}

public class InstanceofInterfaceExample {
    public static void main(String[] args) {
        Dog dog = new Dog();
        boolean result = dog instanceof Animal;
        System.out.println("Is dog an instance of Animal? " + result);
    }
}

Ici, l'opérateur instanceof vérifie si l'objet dog est une instance de l'interface Animal. Le résultat est true car Dog implémente Animal.

Exemple 3 : Vérification du type avant la coulée

public class InstanceofCastingExample {
    public static void main(String[] args) {
        Object obj = "Hello, World!";
        
        if (obj instanceof String) {
            String str = (String) obj;
            System.out.println("The string is: " + str);
        } else {
            System.out.println("The object is not a String.");
        }
    }
}

Dans cet exemple, l'opérateur instanceof est utilisé pour vérifier si obj est une instance de String avant d'effectuer une conversion. Cela permet d'éviter une ClassCastException au moment de l'exécution.

Conseils et bonnes pratiques

  • Type Sécurité: Utilisez le site instanceof pour garantir la sécurité des caractères avant de couler des objets. Cela permet d'éviter ClassCastException.
  • Polymorphisme: Utilisez instanceof lorsque vous travaillez avec du code polymorphe pour déterminer le type réel d'un objet.
  • Contrôles de nullité: L'opérateur instanceof renvoie false si l'objet testé est null.
    String str = null;
    boolean result = str instanceof String; // result is false
  • Évitez la surutilisation: Bien que le site instanceof soit utile, son utilisation excessive peut être le signe d'une mauvaise conception. Envisagez d'utiliser le polymorphisme et la superposition de méthodes pour gérer les comportements spécifiques à un type.
  • Interfaces: Utilisez instanceof pour vérifier si un objet met en œuvre une interface particulière, ce qui peut être utile dans les collections et la programmation générique.
     

Apprendre l'essentiel de Java

Développez vos compétences en Java à partir de la base et maîtrisez les concepts de programmation.
Commencez à apprendre gratuitement