Précédent   Forum des professionnels en informatique > Java > Général Java > APIs
APIs Forum sur les API standard et API complémentaires. Avant de poster -> FAQ Java, Les meilleures API Java
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/12/2011, 17h54   #1
Membre à l'essai
 
Inscription : octobre 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 96
Points : 20
Points : 20
Par défaut [Reflexion] Récupération d'une méthode déclarée dans la classe supérieure

Bonjour tout le monde,

J'espère avoir chez vous une réponse à mon problème

J'utilise la réflexion pour récupérer une méthode de la classe supérieure de ma classe (pour des besoins spécifiques je dois appelé une méthode parmi un ensemble de méthode).

La méthode est déclarée comme 'protected', donc j'utilise la méthode declaredMethod('nom de la méthode') pour la récupérer. et j'aimerai lui faire appel. sachant que je suis dans la classe qui étends sa classe, donc j'ai la possibilité d’exécuter la méthode.

A l’exécution du programme, j'arrive à récupérer la méthode mais l’appel me retourne 'null'

Code :
1
2
3
4
5
6
7
8
 
 
Class myClass = this.getClass();
Method destinationServiceGetter;
destinationServiceGetter = myClass.getSuperclass().getDeclaredMethod("get"
				+ serviceName, null);
 
Object destinationService = destinationServiceGetter.invoke(this);
avec serviceName est une chaîne de caractère comme entrée.

P.S : quand je mets la méthode dans la même classe, le programme marche bien. (sans utiliser getSuperclass() biensur ).

est ce que l'appel à une méthode avec la réflexion ne respecte pas si la classe est une classe qui hérite de la classe concernée?.
masterboy01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 18h48   #2
Expert Confirmé Sénior
 
Inscription : septembre 2004
Messages : 5 092
Détails du profil
Informations forums :
Inscription : septembre 2004
Messages : 5 092
Points : 7 020
Points : 7 020
Chez moi ça marche. Montre-nous un programme qui a le problème, mais qui compile.

Edit : Ah, j'avais pas compris, tu essaies de contourner le polymorphisme. Tu ne peux pas. Si on pouvait le contourner de cette manière, à quoi servirait-il ?
thelvin est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2011, 19h28   #3
Membre à l'essai
 
Inscription : octobre 2006
Messages : 96
Détails du profil
Informations forums :
Inscription : octobre 2006
Messages : 96
Points : 20
Points : 20
J'ai essayé un simple programme, et ça a marché.

Après la vérification, J'ai trouvé que j'ai déconné :p

J'ai pas utilisé le fichier spring exacte dont je doit injecter mon service ; c'est pourquoi il me retourne null.

Merci pour ta réponse

Bonne fin de soirée.
masterboy01 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 04h57.


 
 
 
 
Partenaires

Hébergement Web