Prüfen ob eine Klasse abgeleitet ist
-
Hallo,
wie kann ich mit dem Java Reflection Package herausfinden ob eine klasse von einer anderen abgeleitet ist und diese Klasse dann ggf. anzeigen lassen?
Dermold
-
Das geht so:
[java]import java.lang.reflect.;
import java.awt.;class SampleSuper {
public static void main(String[] args) {
Button b = new Button();
printSuperclasses(b);
}static void printSuperclasses(Object o) {
Class subclass = o.getClass();
Class superclass = subclass.getSuperclass();
while (superclass != null) {
String className = superclass.getName();
System.out.println(className);
subclass = superclass;
superclass = subclass.getSuperclass();
}
}
}[/code] Das Ergebnis dieses Programmes wärejava.awt.Component java.lang.Object
-
Hi,
erstmal danke für die Antwort aber das Hilft mir nicht ganz weiter.
Ich habe z.B. folgende Klasse, die ich untersuchen möchte:
public class myclass extends myclass2 { ... }
Nun möchte ich wissen ob myclass von einer anderen Klasse abgleitet ist. In diesem Falle ist das ja ja myclass2 und dies will ich nun ausgeben.
Dermold
-
Ersetze in meinem Beispiel das Button-Objekt durch ein Objekt deiner Klasse und gut ist
Wenn Du dir den Code mal ansiehst wirst du merken dass das Objekt auch nicht notwendig ist ... Class subclass = o.getClass(); holt sich vom Objekt die Klasse ... wenn du hier sofort Class subclass = myclass.class eingibst läuft das Programm auch ...