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 :

Créer une enum Dynamiquement


Sujet :

Langage Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut Créer une enum Dynamiquement
    Bonjour,
    Je voudrais pouvoir faire ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    public static void createEnum(String name, String ... mesConstantes){
          /*et après l'appel de ma méthode, enum ressemble à ça :
           *enum{ CONSTANTE_1, CONSTANTE_2...}
           *constante1 et constante2 étant les valeurs de la liste reçu en paramètre
           */
    }
    main{
         createEnum("Saison", "Printemps", "Eté", "Automne", "Hivers");
         Saison t = Saison.PRINTEMPS;
         switch(t){ ....}
    }
    (l'enum Saison peut exister avant avec un corps vide s'il le faut)

    J'ai bien vu dans la faq :
    on ne peut ni construire de nouvelle instance, ni hériter d'une enum...
    Mais est-il possible de créer un nouveau type énuméré en spécifiant dynamiquement ses constantes. J'ai regardé l'API java.lang.reflect mais j'ai pas trouvé comment faire...

    Merci d'avance.

  2. #2
    Rédacteur
    Avatar de CyberChouan
    Homme Profil pro
    Directeur technique
    Inscrit en
    Janvier 2007
    Messages
    2 752
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Directeur technique
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Janvier 2007
    Messages : 2 752
    Par défaut
    Petite recherche dans le forum:



    Pour te spoiler la réponse, ce n'est pas possible!
    Avant de poster, pensez à regarder la FAQ, les tutoriaux, la Javadoc (de la JRE que vous utilisez) et à faire une recherche
    Je ne réponds pas aux questions techniques par MP: les forums sont faits pour ça
    Mes articles et tutoriaux & Mon blog informatique

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Merci pour la rapidité de ta réponse. Bon ba il va valoir faire autrement^^

    C'est prévu pour java7 ? Parce qu'apparemment, une méthode tel que je l'ai proposé ne devrait posé aucun problème.

    Autrement une solution à laqualle j'avais pensé, est de modifier le fichier de la class ou je veux mon enum et recompiler/recharger la class en question mais la dernière partie ne doit pas être automatisable

  4. #4
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par atha2 Voir le message
    C'est prévu pour java7 ?
    Non...

    Mais en même temps j'ai vraiment du mal à voir l'intérêt de cela

    a++

  5. #5
    Membre très actif
    Inscrit en
    Mars 2008
    Messages
    283
    Détails du profil
    Informations forums :
    Inscription : Mars 2008
    Messages : 283
    Par défaut
    Enum dynamiques = Listes de chaînes de caractères

    Non ?!?

  6. #6
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Citation Envoyé par atha2 Voir le message
    C'est prévu pour java7 ? Parce qu'apparemment, une méthode tel que je l'ai proposé ne devrait posé aucun problème.
    Si justement. Java est un langage statiquement typé, ce que tu as écris ne peut pas être appréhendé. En revanche, en Groovy c'est possible.

    Citation Envoyé par atha2 Voir le message
    Autrement une solution à laqualle j'avais pensé, est de modifier le fichier de la class ou je veux mon enum et recompiler/recharger la class en question mais la dernière partie ne doit pas être automatisable
    Si tu veux jouer sur ces aspects là, tourne toi vers la lib asm où tu pourras par exemple définir un classloader spécifique pour un enum vide, qui peuple au chargement (dynamiquement donc) tous les champs que tu veux.

    Mais bon...

  7. #7
    Expert éminent
    Avatar de adiGuba
    Homme Profil pro
    Développeur Java/Web
    Inscrit en
    Avril 2002
    Messages
    13 938
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Java/Web
    Secteur : Transports

    Informations forums :
    Inscription : Avril 2002
    Messages : 13 938
    Billets dans le blog
    1
    Par défaut
    Dans ce cas ce cas ce n'est pas vraiment une enum au sens propre : les types enums représentent un ensemble statique de valeurs ordonnées et prédéfinies.


    Quel intérêt y-a-t-il alors de gérer une classe dynamiquement, alors qu'une simple liste ferait l'affaire.

    a++

  8. #8
    Membre Expert

    Homme Profil pro
    Architecte logiciel
    Inscrit en
    Novembre 2006
    Messages
    1 252
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte logiciel
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 252
    Par défaut
    Un point avantageant l'enum par rapport à une liste c'est l'exploitation dans un switch.

    - liste : impossible
    - enum statique : possible
    - enum dynamique : impossible car comme l'enum n'est pas encore pleinement défini, la classe qui l'utiliserait ne compilerait pas.


    Donc, effectivement, pas d'intérêt.

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

Discussions similaires

  1. [VBA/VB] créer une page dynamiquement dans un WebBrowser
    Par SilkyRoad dans le forum Contribuez
    Réponses: 3
    Dernier message: 13/03/2013, 22h24
  2. créer une méthode dynamique delphi
    Par ougueye dans le forum Delphi
    Réponses: 4
    Dernier message: 09/04/2007, 14h33
  3. [reports] comment créer une requete dynamiquement
    Par lifeisgood dans le forum Reports
    Réponses: 4
    Dernier message: 31/01/2007, 12h15
  4. [Tableaux] Créer une ligne dynamiquement
    Par Lenaick dans le forum Langage
    Réponses: 11
    Dernier message: 24/01/2007, 10h58
  5. [WebForms]créer une formulaire dynamiquement
    Par lamiae18 dans le forum Général Dotnet
    Réponses: 1
    Dernier message: 16/01/2007, 18h43

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