Betrachten wir die Klassen MinorClassA
und MinorClassB
, beide MajorClass
erstrecken. Ich habe ein Objekt von MajorClass
, dass ich sicher bin, ist tatsächlich eine Instanz einer seiner Unterklassen.überprüfen Unterklasse eines Objekts in Java
MinorClassA subclassedObj = new MinorClassA();
MajorClass obj = subclassedObj;
//------ More code -------------
if(subclassof(obj) == MinorClassA) //Something like this
Wie kann ich herausfinden, was die Unterklasse dieses Objekts ist? Ich habe keinen Zugriff auf subclassedObj
, nur auf obj
.
Zur Klarstellung bearbeiten: Ich weiß, wie man überprüft, ob MinorClassA
Instanz von MajorClass
ist, aber nicht umgekehrt.
'if (obj instanceof classname) ...' – khelwood
* Wie kann ich herausfinden, was die Unterklasse des Objekts ist? * Programmieren Sie die Schnittstelle, warum versuchen Sie, den konkreten Typ zu bestimmen? –
@ElliottFrisch: "Programm an die Schnittstelle" sollte als eine gute allgemeine Regel betrachtet werden, nicht Dogma in jeder Situation zu folgen. Es kann berechtigte Gründe geben, den Ausführungszeittyp eines Objekts zu überprüfen. –