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

Langage Java Discussion :

Noms de fonctions dynamiques


Sujet :

Langage Java

  1. #1
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Noms de fonctions dynamiques
    Je fais appel à tout les stars du JAVA qui sont dans les parages : voici mon problème. Je souhaite remplacer un switch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    switch(statut)
    case 001 : this.f001() ; break ;
    case 002 : this.f002() ; break ;
    case 010 : this.f010() ; break ;
    ...
    (la liste est en réalité très longue.

    par un simple appel du genre
    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Baptiste Wicht
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    7 431
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Suisse

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 7 431
    Points : 21 324
    Points
    21 324
    Par défaut
    Citation Envoyé par pierrelm
    Je fais appel à tout les stars du JAVA qui sont dans les parages : voici mon problème. Je souhaite remplacer un switch
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    switch(statut)
    case 001 : this.f001() ; break ;
    case 002 : this.f002() ; break ;
    case 010 : this.f010() ; break ;
    ...
    (la liste est en réalité très longue.

    par un simple appel du genre
    Merci d'avance
    Pour cela, tu seras obligé d'employer la reflection, fais une recherche sur le forum et/ou sur google pour commencer.

  3. #3
    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 778
    Points
    5 778
    Par défaut
    Il y a un totriel sur ce sujet : API Reflection .

  4. #4
    Rédacteur/Modérateur

    Avatar de bouye
    Homme Profil pro
    Information Technologies Specialist (Scientific Computing)
    Inscrit en
    Août 2005
    Messages
    6 860
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : Nouvelle-Calédonie

    Informations professionnelles :
    Activité : Information Technologies Specialist (Scientific Computing)
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2005
    Messages : 6 860
    Points : 22 898
    Points
    22 898
    Billets dans le blog
    51
    Par défaut
    Un truc du genre :

    Post Java 5.0

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try {
      Class aClass = this.getClass();
      Method method = aClass.getMethod("f" + statut);
      method.invoke(this);
    }
    catch (Throwable t) {
      ...
    }
    Pre Java 5.0
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    try {
      Class aClass = this.getClass();
      Method method = aClass.getMethod("f" + statut, null);
      method.invoke(this, null);
    }
    catch (Throwable t) {
      ...
    }
    Et tout un tas d'exceptions a gerer....

  5. #5
    Membre à l'essai
    Inscrit en
    Mai 2006
    Messages
    16
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 16
    Points : 15
    Points
    15
    Par défaut Merci
    Merci pour vos réponses, en particulier, celle de Bouye. J'ai juste galérer à trouver pourquoi j'avais l'exception java.lang.NoSuchMethodException. En réalité, il faut que les méthodes soient déclarées public et non private.

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

Discussions similaires

  1. Nom de fonction dynamique
    Par Umlist dans le forum C
    Réponses: 4
    Dernier message: 14/06/2012, 06h28
  2. Nom de fonction "dynamique"
    Par chouetz dans le forum C
    Réponses: 9
    Dernier message: 29/05/2011, 00h53
  3. nom de fonction dynamique
    Par zakuza dans le forum Général JavaScript
    Réponses: 14
    Dernier message: 07/02/2008, 08h56
  4. Réponses: 4
    Dernier message: 18/01/2007, 05h46
  5. Nom de fonction dynamique
    Par gege2061 dans le forum C
    Réponses: 2
    Dernier message: 21/06/2005, 14h44

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