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

API standards et tierces Java Discussion :

pb avec invoke de java.lang.reflect.


Sujet :

API standards et tierces Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut pb avec invoke de java.lang.reflect.
    bonjour a tous,
    J'utilise le mecanisme d'introspection de java pour executer une fonction qui s'appel Summary() a partir d'une fonction CallSummary().

    j'arrive sans probleme a identifier ma methode Summary() a partir de CallSummary() mais je n'arrive pas a recuperer et traiter le resultat qu'elle me retourne.
    Summary() me retourne un tableau de String alors que quand "j'invoke" ma methode Summary() (a partir de CallSummary) avec [FONT=Arial]invoke de java.lang.reflect
    l'iinvoke me retroune un "Object"
    Auriez vous une idée me permettant d'exploiter le tableau de string a partir de [/FONT][FONT=Times New Roman]CallSummary() ?[/FONT]
    [FONT=Times New Roman][/FONT]
    Merci d'avance.
    Sebastien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    
    public static void CallSummary(String nom_de_la_classe)
    {
     
    String NomDeLaMethode=null;
     
    try
    {
    Class classe = Class.forName(nom_de_la_classe); 
     
    Method[] methodes = classe.getDeclaredMethods();
     
    for(int y = 0; y < methodes.length; y++) 
    {
     
    try
    {
    NomDeLaMethode=methodes[y].getName(); 
    }
    catch (Exception e)
    {
    System.out.println("Erreur lors de la recuperation du nom de la methode Summary()"); 
    e.printStackTrace(); 
    }
     
     
    if ((NomDeLaMethode.startsWith("Summary")))
    { 
     
    try
    { 
    Method m = classe.getMethod(NomDeLaMethode,new Class[] {}); 
    System.out.println("Nom de la méthode : "+methodes[y].getName());
    System.out.println("RESULTAT : "+m.invoke(classe, null)); 
    }
    catch (Exception e)
    {
    // ---
    }
     
    } 
    } 
     
    }
    catch (ClassNotFoundException e)
    {
    System.out.println("La classe n'a pu être déterminée !");
    e.printStackTrace();
    } 
    

  2. #2
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    La methode invoke de la classe Method renvoie le résultat de la methode invoquer mais en temps qu'Object, il te suffit normalement de caster cet objet vers la classe attendue (dans ton cas un tableau de String).
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String[] result = (String[]) m.invoke(classe, null);
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Février 2006
    Messages
    53
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Février 2006
    Messages : 53
    Points : 34
    Points
    34
    Par défaut
    merci beaucoup pour l'information.

    Et bon Week-End a tous

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 09/06/2011, 15h30
  2. Réponses: 0
    Dernier message: 19/04/2010, 16h59
  3. erreur avec java.lang.reflect.InvocationTargetException
    Par PeterEMF dans le forum Services Web
    Réponses: 0
    Dernier message: 24/10/2008, 12h50
  4. java.lang.reflect.InvocationTargetException avec Axis1.4 et Tomcat6
    Par KING_OF_GRACELAND dans le forum Services Web
    Réponses: 2
    Dernier message: 20/06/2008, 00h49
  5. Probleme avec la recherche directe de methodes sur une Class (API java.lang.reflect)
    Par CyberChouan dans le forum API standards et tierces
    Réponses: 14
    Dernier message: 25/01/2007, 17h12

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