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 :

Les enum en java


Sujet :

Langage Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut Les enum en java
    En utilisant les enum par exemple jre 1.5

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    public enum Test {
       TOTO,
       TATA,
       TITI
    };
    ca fonctionne bien

    par contre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    public enum Test {
       TOTO = 5,
       TATA = 1,
       TITI = 6
    };
    ca ne fonctionne pas erreur a la compilation


    Syntax error on token "=", ( expected g

    Il me semblait que ca marchait , j'avais cru voir ce genre de syntaxe

    Merci de votre aide.

  2. #2
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Salut,

    Citation Envoyé par andromeda
    Il me semblait que ca marchait , j'avais cru voir ce genre de syntaxe
    Non : ce style de syntaxe existe en C/C++ où les enums sont de simple int déguisé.

    En Java on a affaire à de véritable objet et il faut passer par un attribut et un constructeur, par exemple :
    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
    public enum Test {
    	TOTO(5),
    	TATA(1),
    	TITI(6);
     
    	/** L'attribut qui contient la valeur associé à l'enum */
    	private final int value;
     
    	/** Le constructeur qui associe une valeur à l'enum */
    	private Test(int value) {
    		this.value = value;
    	}
     
    	/** La méthode accesseur qui renvoit la valeur de l'enum */
    	public int getValue() {
    		return this.value;
    	}
    };
    a++

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    Merci beaucoup

  4. #4
    Expert éminent sénior
    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
    Points : 23 190
    Points
    23 190
    Billets dans le blog
    1
    Par défaut
    Merci de penser à utiliser le bouton

  5. #5
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    j'ai enleve resolu parque je ne sais pas l'uilise

    Comment dois je proceder ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Test ele = new Test(5);
     
    System.out.println(ele.toString());
    J'ai un message d'erreur.

    en fait je voudrais recuperer par exemple toto si j'entre la valeur 5

    j'ai essaye

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Test ele = Test(5);
    System.out.println(ele.toString());
     
    Test ele = Test("5");
    System.out.println(ele.toString());
    ca ne donne rien.

    Merci de votre aide.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    En fait les enum c'est pas approprie

    car l'enum fait l'inverse de ce que je veux , on lui donne toto et on recupere du coup 5 avec la methode value. moi je veux lui passer 5 et il doit me renvoye toto

    Le probleme c'est que j'ai une centaine d'element, si je les mets sur un tableau, l'indice est sequentielle de 0 a n-1 ca ne marchera pas

    alors que moi j'ai 100 element du type

    ele1 = 21;
    ele2 = 100;

    je ne vais pas creer 10 constantes quand meme ?

    public static final int ele1 ... jusqua 100.

    Merci de votre aide.

  7. #7
    Membre actif
    Avatar de vahid
    Profil pro
    Inscrit en
    Juillet 2007
    Messages
    228
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2007
    Messages : 228
    Points : 276
    Points
    276
    Par défaut
    slt
    t as toujours la possibilité d associer tes integer a des string dans une Map mais je c pas si ca répond precisement a ton besoin
    Non, Vahid n'est pas mon prénom
    c' est gratuit , aussi

  8. #8
    in
    in est déconnecté
    Membre expérimenté Avatar de in
    Profil pro
    Inscrit en
    Avril 2003
    Messages
    1 612
    Détails du profil
    Informations personnelles :
    Localisation : France, Finistère (Bretagne)

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 612
    Points : 1 718
    Points
    1 718
    Par défaut
    [EDIT]
    Bon ben, le temps d'écrire et ce que je dis n'a plus rien à voir avec le pb ...


    Du coup je dirais comme vahid. utilise une map ...
    [/EDIT]

    Ben t'as juste à faire comme adiguba t'a montré.

    Le constructeur de ton enum, tu n'a pas à l'appeler (pas de new). Il ne sert qu'à l'énum elle-même pour s'initialiser. Tu dois juste fournir à ton énum le constructeur qui correspond à ta manière d'initialiser les valeurs.

    Pour utiliser ton enum

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    import static Test.*;
    System.out.println(TOTO); // affiche 5
    ou

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.out.println(Test.TOTO); // affiche 5
    "If email had been around before the telephone was invented, people would have said, 'Hey, forget email! With this new telephone invention I can actually talk to people!"

    Besoin d'une nouvelle méthode pour développer ? -> http://www.la-rache.com/

  9. #9
    Membre habitué
    Profil pro
    Inscrit en
    Juin 2004
    Messages
    360
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2004
    Messages : 360
    Points : 137
    Points
    137
    Par défaut
    c'est l'inverse que je veux faire mais j'ai trouve voici le code:

    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
     
    public enum Test {
    	TOTO(5),
    	TATA(1),
    	TITI(6);
     
    	/** L'attribut qui contient la valeur associé à l'enum */
    	private final int value;
     
    	/** Le constructeur qui associe une valeur à l'enum */
    	private Test(int value) {
    		this.value = value;
    	}
     
    	/** La méthode accesseur qui renvoit la valeur de l'enum */
    	public int getValue() {
    		return this.value;
    	}
    };
     
    Test [] tab;
    Test MyEle;
     
    tab = Test.Value();
    System.out.println(tab[5]);  
    ou
    System.out.println(tab[5].toString());
    ca m'affiche bien TOTO.

    Merci.

  10. #10
    Membre confirmé Avatar de miloux32
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    545
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 545
    Points : 565
    Points
    565
    Par défaut
    Je vais sans doute dire une connerie ....

    Mais une interface ?
    C'est pas parce que ca marche que c'est bon!!
    Pensez au bouton "Résolu"
    Je ne réponds pas en privé aux questions

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

Discussions similaires

  1. Tutoriel sur des patterns d'implémentation avec les enums Java
    Par Mickael Baron dans le forum Général Java
    Réponses: 4
    Dernier message: 01/05/2015, 14h56
  2. [Avis] Les meilleurs programmes Java ?
    Par christopheJ dans le forum ImageJ
    Réponses: 69
    Dernier message: 07/10/2008, 02h12
  3. [Stratégie] Ant pour les tests en Java ?
    Par franckR dans le forum Tests et Performance
    Réponses: 5
    Dernier message: 08/03/2004, 10h38

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