Quelle est la différence entre l'opérateur Instanceof et Getclass() en Java ?

2 Réponses


  • Méthode GetClass() dans la classe d'objets :

    String s = new String();

    System.out.printl />
    Renvoie la classe d'exécution d'un objet. Ici, l'objet est 's' et son type est String, il renvoie donc String

    ------

    instanceof est un mot-clé.
    Il vérifie une référence d'objet si celle définie par une classe ou ses sous-classes et renvoie une valeur booléenne ;
    Les instanceof Object renverra true pour toutes les références d'objet, car tous les objets Java sont hérités de Object . Notez que instanceof retournera toujours false si est nul .
    Syntaxe:
    instanceof ClassName

    eg

    dog instanceof Dog :: True
    Dalmatien instanceof Dog   :: True
    dog instanceof Dalmatien :: False

    Hope it help...



  • La raison pour laquelle les performances de instanceof et getClass()
    == ... sont différentes est qu'elles font des choses différentes.

    • instanceof teste
          si la référence d'objet sur le côté gauche (LHS) est une instance du
          type sur le côté droit (RHS) ou un sous-type .
    • getClass()
          == ... Teste si les types sont identiques.

    La recommandation est donc d'ignorer le problème de performances et d'
    utiliser l'alternative qui vous donne la réponse dont vous avez besoin.


Ecrivez votre réponse

Votre réponse apparaîtra après modération