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äre

    java.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 ...


Anmelden zum Antworten