Was ist der Unterschied zwischen Instanceof-Operator und Getclass() in Java?

2 Antworten


  • GetClass()-Methode in der Objektklasse:

    String s = new String();

    System.out.printl />
    Gibt die Laufzeitklasse eines Objekts zurück. Hier ist object 's' und sein Typ ist String, so dass es String

    zurückgibt ------

    instanceof ist ein Schlüsselwort.
    Es überprüft eine Objektreferenz, ob sie von einer Klasse oder ihren Unterklassen definiert ist, und gibt einen booleschen Wert zurück;
    Die instanceof Object gibt für alle Objektreferenzen true zurück, da alle Java-Objekte von Object geerbt werden . Beachten Sie, dass instanceof immer false zurückgibt, wenn ist null .
    Syntax:
    instanceof ClassName

    zB

    dog instanceof Dog :: True
    dalmatian instanceof Dog   :: True
    dog instanceof Dalmatiner :: False

    Hoffe es hilft...



  • Der Grund dafür, dass die Leistung von instanceof und getClass()
    == ... unterschiedlich ist, liegt darin, dass sie unterschiedliche Dinge tun.

    • instanceof testet,
          ob die Objektreferenz auf der linken Seite (LHS) eine Instanz des
          Typs auf der rechten Seite (RHS) oder ein Untertyp ist .
    • getClass()
          == ... Testet, ob die Typen identisch sind.

    Daher wird empfohlen, das Leistungsproblem zu ignorieren und
    die Alternative zu verwenden, die Ihnen die gewünschte Antwort gibt.


Schreibe deine Antwort

Ihre Antwort erscheint nach der Moderation appear