Klassenzugehörigkeit

Status
Nicht offen für weitere Antworten.

Nizar1984

Mitglied
die Methode

getY()

liefert ein Objekt vom Typ Y zurück. Dieses ist vom Typ X abgeleitet.

Wenn ich das Objekt mit toString() in eine Zeichenkette umforme und dann ausgebe, bekomme ich den richtigen packagenamen und den richtigen Klassennamen zurück, was eigentlich impliziert dass der Typ richtig erkannt wurde.

Nur folgendes Problem: Ich übergebe dieses Objekt dann einem Konstruktor einer anderen Klasse. Der Konstruktor hat in der Parameterliste einen Parameter vom Typ X, also vom Obertyp.

Dort mache ich dann eine Typ Prüfung mit "instanceof Y", und es wird nicht erkannt, dass das Objekt vom Typ Y ist. Wenn ich für das Objekt die getClass() methode aufrufe und dann ausgebe, bekomme ich den Klassennamen des Obertyps und daran die Zeichenkette "_$$_javassist_23" angehängt.
 
S

SlaterB

Gast
wo ist denn die Klasse definiert, wer erstellt das Objekt?
die Endung kommt mir leicht bekannt vor, eine kurze google-Suche führte hauptsächlich zu Hibernate,
zu einem möglichen Proxy anstelle eines normalen Objektes

toString() muss nicht immer mit getClass() übereinstimmen, gibt vor der Übergabe auch getClass() aus,
bzw. im Konstruktor auch toString() bzw. immer beides,
das sollte sich beides nicht plötzlich ändern..
 

Nizar1984

Mitglied
Du hast recht, es kommt von Hybernate, und toString und getClass() geben beide unterschiedliches aus. Wunder mich dass man mit der toString() methode den Untertyp sieht, sieht aus als wurde das Objekt auf den Obertyp gemappt. Gibt es trotzdem eine Möglichkeit zu erkennen ob das Objekt vom Untertyp ist?
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Oben