Nehmen wir an, ich habe eine Klasse A, und dass B, C, D von A abgeleitet sind. Wenn ich wissen möchte, was der Typ eines Objekts ist, kann ich deklarieren :Sehen Sie, ob zwei Objekte den gleichen Typ haben
// pseudo-code
if(obj instanceof B)
< is B>
else if(obj instanceof C)
< is C>
else
<is D>
Dies, weil ich sicher bin, dass die von A abgeleiteten Klassen nur B, C und D.
Aber was sind, wenn ich, dass zwei Verweise auf die gleiche Art von Objekt nur überprüfen will zeigen?
So etwas wie:
if(obj1 instanceof obj2)
<do something>
Aber natürlich ist die Syntax ist wrong.How diese tausend if-else ohne eine überprüfen? Dies sollte return true nur, wenn beide obj1
und obj2
wie
obj1.getClass().equals(obj2.getClass())
Es gibt keinen Grund '.equals zu tun()', nur die Klasse existiert einmal im Pool. – kba
Notwendigkeit ist keine Frage des Stils. – Jack
Das macht, was ich gesucht habe. –