invocation de méthode statique d'une classe dérivée, par introspection
Je sais pas si le titre est clair. En fait mon probleme est le suivant.
J'ai une classe disons A dont dérive les 3 classes B,C, et D. Ces sous classes classes contiennent des méthodes statiques ayant la meme signature (bon je sais modèle objet foireux). J'aimerais pouvoir invoquer la méthode de la bonne classe en utilisant de l'introspection, c'est à dire plutot qu'écrire :
Code:
1 2 3 4 5 6 7 8
|
if (test1) {
B.staticMethod(args);
} else if (test2) {
C.staticMethod(args);
} else {
D.staticMethod(args);
} |
écrire une fonction pour encapsuler tout ca:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
|
static Class getClassName(arg){
if (test1){
return Class.forName(B.class.getName());
} else if (test2) {
return Class.forName(C.class.getName());
} else if (test3){
return Class.forName(D.class.getName());
}
}
//je recupere la bonne classe (enfin j'espere)
Class clazz = getClassName(arg);
//maintenant j'aimerais pouvoir invoquer la methode staticMethod(args) de la classe que j'ai recupere |
Est-ce possible ? Les bouts de code sont bien sur faux mais c'est l'idée..
merci de vos précisions.