IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

avec Java Discussion :

Reflection java sur une méthode static


Sujet :

avec Java

  1. #1
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Points : 134
    Points
    134
    Par défaut Reflection java sur une méthode static
    Bonjour,

    J'ai lu le tutoriel sur la réflection ici : http://ricky81.developpez.com/tutori...reflection/#L2

    Mais je fais face à un petit problème qui n'est pas traité...

    J'aimerais faire appel de manière dynamique à une méthode static.

    Voici l'appel à la méthode :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    	public static String[] getColumnName(Object o) throws Exception
    	{
    	  Method m = o.getClass().getMethod("getColumnName");
    	  return (String[]) m.invoke(o);
    	}
    Ce code marche sans soucis lorsque je passe une instance en argument.

    J'aimerais en fait remplacer le fait de passer un Object o en argument par un String contenant le nom de la classe, vu que la méthode getColumnName est static dans les classes où elle est implémentée.

    Merci.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2004
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Avril 2004
    Messages : 1 184
    Points : 1 745
    Points
    1 745
    Par défaut
    En espérant que ce soit ce que tu cherches.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    	public static String[] getColumnName(Class<?> c) throws Exception {
    	  Method m = c.getMethod("getColumnName");
    	  return (String[]) m.invoke(null);
    	}
     
    	public static String[] getColumnName(String cName) throws Exception {
    		Class<?> c = Class.forName(cName);
    		Method m = c.getMethod("getColumnName");
    		return (String[]) m.invoke(null);
    	}

  3. #3
    Membre habitué
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Novembre 2011
    Messages
    101
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Distribution

    Informations forums :
    Inscription : Novembre 2011
    Messages : 101
    Points : 134
    Points
    134
    Par défaut
    Oui, c'est parfait, merci pour la réponse rapide!

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. BeginInvoke sur une méthode par Reflection delegate
    Par jpbelmondo59 dans le forum C#
    Réponses: 0
    Dernier message: 02/06/2015, 10h58
  2. Compréhension du rôle de static sur une méthode
    Par domxaline dans le forum Débuter avec Java
    Réponses: 1
    Dernier message: 07/04/2015, 22h36
  3. blocage sur une méthode synchronized
    Par rockelite dans le forum Général Java
    Réponses: 3
    Dernier message: 03/05/2006, 22h28
  4. [ActiveX] Retour de BSTR sur une méthode externe
    Par mr.saucisse dans le forum MFC
    Réponses: 28
    Dernier message: 11/01/2006, 15h47
  5. Réponses: 3
    Dernier message: 16/04/2004, 16h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo