G
Guest
Gast
Hallo,
in meinem Programm hab ich in der Klasse ClassIdentifier eine Methode mit folgendem Profil:
Diese Methode durchsucht ein Verzichnis nach Klassen die Unterklassen von superClass sind. Das funktioniert auch einwandfrei, ich hab nur ein Problem damit, das ich am folgenden Beispiel erklären will.
Es gibt die abstrakte Klasse A
Im Programm lasse ich mir nun mit der oben genannten Methode alle Klassen suchen die von A erben und will dann deren Methode doSomething() ausführen.
Das klappt auch, aber kann ich mir den Cast irgenwie sparen, kann ich dem Programm irgendwie verständlich machen, dass das Class[] das als Rückgabewert geliefert nur Class-Objekte enthählt deren Instanzen von A abgeleitet sind? Vielleicht mit Generik etc?
Ich hoffe die Frage ist verständlich :lol:
mfg Thomas
in meinem Programm hab ich in der Klasse ClassIdentifier eine Methode mit folgendem Profil:
Code:
public static void Class[] getClasses(Class superClass)
Diese Methode durchsucht ein Verzichnis nach Klassen die Unterklassen von superClass sind. Das funktioniert auch einwandfrei, ich hab nur ein Problem damit, das ich am folgenden Beispiel erklären will.
Es gibt die abstrakte Klasse A
Code:
public abstract class A
{
public abstract void doSomething();
}
Im Programm lasse ich mir nun mit der oben genannten Methode alle Klassen suchen die von A erben und will dann deren Methode doSomething() ausführen.
Code:
Class[] classes = ClassIdentifier.getClasses(A.getClass());
for (int i = 0; i < classes.length; i++)
{
((A)classes[i].newInstance()).doSomething();
}
Das klappt auch, aber kann ich mir den Cast irgenwie sparen, kann ich dem Programm irgendwie verständlich machen, dass das Class[] das als Rückgabewert geliefert nur Class-Objekte enthählt deren Instanzen von A abgeleitet sind? Vielleicht mit Generik etc?
Ich hoffe die Frage ist verständlich :lol:
mfg Thomas