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 :

Enum dynamique


Sujet :

Langage Java

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut Enum dynamique
    Bonjour,
    Je souhaite utiliser des enumerations, mais vu le nombre de types differents (>100)et etant donné que ce nombre pourrait etre changer par l'utilisateur, j'aimerais créer une enumeration lors de l'execution de mon programme.
    Je pensais que Enum, pourrait me permettre de faire ca mais apparament non?
    Quelqu"un peut il me le confirmer?
    J'ai plus qu'a me taper tout le code... (c'est pas gros d'accord mais bon...)

  2. #2
    Membre expert

    Homme Profil pro
    Consultant informatique
    Inscrit en
    Janvier 2004
    Messages
    2 301
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Consultant informatique
    Secteur : Finance

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 301
    Points : 3 675
    Points
    3 675
    Par défaut
    Hello,

    la classe Enum, comme décrit dans la Javadoc, est le type de base de tous les types énumérés. Cela ne veut pas dire qu'elle est plus performante qu'un type "enum" ! cela veut juste dire que c'est une classe parente, et que donc dans le code suivant:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    enum E { VAL; }
    ...
    E e = E.VAL;
    boolean b = (e instanceof Enum);
    "b" est toujours vrai

    mais ce qui se rapproche le plus d'une énumération dynamique, ce serait l'utilisation d'une liste contenant les valeurs légales de l'énumération en question (mais tu perd la sécurité de type et tous les avantages des "enum" de Java 5)

    "Le plug gros problème des citations trouvées sur internet, c'est qu'on ne peut jamais garantir leur authenticité"

    Confucius, 448 av. J-C

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 760
    Points : 626
    Points
    626
    Par défaut
    Mouai, merci.
    Voila ce que j'ai fait neanmoins je ne suis pas tres content de l'utilisation du tableau mais au moins à pleine charge c'est performant...
    A propri tous les types seront utilisés mais les états c'est pas sur... Donc c'est loin d'etre optimisé, par exemple s'il y a plus de 100 état possibles et que seul l'état 0 est utilisé... Sans compter la taille des objets en eux-meme rien le fait de faire un tableau, crée plus de 100 espaces adresses soit 100*32bits=400octets, si j'ai une vingtaine de types cela me fait au moins 8kB... C'est pas enorme et cela evite de redevoir allouer de la memoire en dehors des nouveaux objets créés mais je ne fait rien de la plupart de la memoire allouée pour mon tableau... Enfin...


    (oui, j'aime bien le mot clef final, et alors ? )

Discussions similaires

  1. Réponses: 3
    Dernier message: 12/06/2015, 14h05
  2. Enum généré dynamiquement
    Par hanubis37 dans le forum C#
    Réponses: 8
    Dernier message: 06/08/2014, 09h26
  3. class enum dynamique !
    Par ancrou dans le forum Débuter avec Java
    Réponses: 7
    Dernier message: 19/05/2009, 17h19
  4. Créer une enum Dynamiquement
    Par atha2 dans le forum Langage
    Réponses: 9
    Dernier message: 23/11/2008, 20h09
  5. Une solution pour faire des enums dynamique ?
    Par n!co dans le forum Langage
    Réponses: 7
    Dernier message: 16/12/2006, 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