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 :

Obtenir les classes héritant d'une certaine classe


Sujet :

Langage Java

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 38
    Points
    38
    Par défaut Obtenir les classes héritant d'une certaine classe
    Bonjour,
    j'aurais voulu savoir comment faire en java pour obtenir toutes la classes "filles" d'une certaine classe.
    Je vous explique un peu mon problème :
    J'ai plusieurs classes (Addition, Multiplication, Division, etc ...) qui héritent toutes de la classe Opération.
    En Entré de mon programme j'ai une chaine String que je voudrais parser et pdt le parsage, je crée mes objets (Addition, Multiplication, Division, etc ...)
    Pour l'instant je suis obliger de faire quelque chose comme ca :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    while (st.hasMoreTokens()) {
                    String courant = st.nextToken();
                    if (courant.compareToIgnoreCase("+")==0){
                        E.addlastelement(new Addition());
                    } else if (courant.compareToIgnoreCase("-")==0){
                        E.addlastelement(new Soustraction());
                    } else if (courant.compareToIgnoreCase("*")==0){
                        E.addlastelement(new Multiplication());
                    }
    Ce qui est plutot lourd !
    j'aimerais bien faire une truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    while (il y a encore des sous classe de opération ){ 
    if ("l'element courant" ==" l'element de reference de la sous classe courante de opération"){
             "ajouter une nouvel objet de la sous classe courante de opération";
    }else {
            " continue d'enumerais les sous classe";
    }
    Le but étant que l'utilisateur du programme n'est pas a changer le parseur quand il ajoute un nouvel opérateur (il aura juste a crée une nouvelle classe...)
    Merci d'avance
    PS : c'est un projet que j'ai a faire pour les cours (L3) et le but est de transformer une expression infixée en une postfixé, puis de l'evaluer.

  2. #2
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Bonsoir,

    Le but étant que l'utilisateur du programme n'est pas a changer le parseur quand il ajoute un nouvel opérateur (il aura juste a crée une nouvelle classe...)
    il va bien falloir que la JVM soit au courant de l'existance de ces classes utilisateur... ca implique de parcourir un repertoire (ou un jar) et de demander au classloader de les charger pour verifier si elles heritent de la classe souhaitée.

    A partir de là, puisque le programme doit connaitre le nom des classes, il suffit de les ajouter dans une Map<String,Class> où la clé est le caractere propre à l'opérateur.

  3. #3
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Bien merci, j'avais penser a faire quelque chose comme ca ...
    Mais bon je ne connais pas trop ce coté la de java (parcour de répertoir)
    Mais bon faut bien apprendre (en meme temps c'est du bonus que je fais la :p )
    Et bien je vais essayé, on va voir ce que cela donne ! Cependant je ne pense pas que ce soit une méthode très "propre" non ?

  4. #4
    Rédacteur
    Avatar de pseudocode
    Homme Profil pro
    Architecte système
    Inscrit en
    Décembre 2006
    Messages
    10 062
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Architecte système
    Secteur : Industrie

    Informations forums :
    Inscription : Décembre 2006
    Messages : 10 062
    Points : 16 081
    Points
    16 081
    Par défaut
    Tu n'as pas besoin d'aller bien loin pour apprendre a faire cela:

    http://vincentlaine.developpez.com/t.../java/plugins/


  5. #5
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2007
    Messages
    38
    Détails du profil
    Informations personnelles :
    Âge : 37
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Juin 2007
    Messages : 38
    Points : 38
    Points
    38
    Par défaut
    Et bien merci de ta rapidité toujours aussi impressionant les gens sur ce forum
    vu l'heure je testerais ca demain
    encore merci.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/12/2009, 17h05
  2. Réponses: 1
    Dernier message: 04/11/2009, 00h39
  3. [RegEx] Récupérer tous les liens d'une certaine classe CSS
    Par Lost In Translation dans le forum Langage
    Réponses: 17
    Dernier message: 02/07/2009, 16h54
  4. Réponses: 7
    Dernier message: 03/12/2008, 15h18
  5. Savoir si un objet d'une certaine classe est dans une liste
    Par Denti-fritz dans le forum Langage
    Réponses: 3
    Dernier message: 26/04/2007, 09h05

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