Klassengleichheit

knowledge

Bekanntes Mitglied
Hallo,

folgendes Problem:

Class c = Class.forName(fullName);

Ich möchte nun prüfen ob ein Objekt Instanz von dieser Klasse (ohne Subklassen) ist.

A a = new A();
A a' = new B(); // B Subclass von A

Class a = a.getClass();
Class a' = a'.getClass();

c und a wären in diesem Fall gleich. c und a' nicht, da Subklasse

Dachte da an sowas:

c.getName().equals(a.getClass().getName()
 
Zuletzt bearbeitet:
S

SlaterB

Gast
keine Frage vorhanden?
was alles gleich ist oder nicht hast du doch sicher getestet,

Variablennamen doppelt zu vergeben (A a, Class a) ist keine gute Idee,

was fullName ist und ob das mit der Klasse A zu tun, weiß niemand?

equals() reicht vielleicht aus zum Vergleich der Klassen-Objekte
 

knowledge

Bekanntes Mitglied
Hallo,

ich lade eine Klasse über den vollqualifizierten Namen (fullName). Dann habe ich eine Collection die Objekte enthält.
Angenommen ich hab eine Klasse Mauer (M) und zwei mögliche Subklassen M1 und M2. Ich will nun nur Objekte die vom Typ Mauer M sind aber nicht vom Typ M1 oder M2.

Class c = classForName(Mauer);
 
S

SlaterB

Gast
'wollen' ist strengenommen immer noch keine Frage,
was passiert denn bei deinen Vergleichen, hast du schon etwas programmiert, besteht ein Problem?

getClass() sollte immer die tatsächliche Klasse liefern, für M1 und M2 also nicht M,
selbst wenn die aktuelle Variable vom Typ M ist, falls das die Frage war
 

Oben