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

avec Java Discussion :

enum un peu particulière


Sujet :

avec Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 52
    Par défaut enum un peu particulière
    Bonjour,
    Je souhaite faire une Enum qui prenne comme valeur :
    "dernierJourDuMois",
    "auPlusBas",
    "auPlusHaut",
    un jour entre 1 et 30.
    Y a-t-il un moyen à part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public enum MonEnum {
    dernierJourDuMois,
    auPlusBas,
    auPlusHaut,
    1,
    2,
    3,
    ...,
    30;
    ?

    Merci d'avance pour votre aide

  2. #2
    Membre expérimenté
    Inscrit en
    Mai 2007
    Messages
    335
    Détails du profil
    Informations forums :
    Inscription : Mai 2007
    Messages : 335
    Par défaut
    Citation Envoyé par WAitWaitW Voir le message
    Bonjour,
    Je souhaite faire une Enum qui prenne comme valeur :
    "dernierJourDuMois",
    "auPlusBas",
    "auPlusHaut",
    un jour entre 1 et 30.
    Y a-t-il un moyen à part
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    public enum MonEnum {
    dernierJourDuMois,
    auPlusBas,
    auPlusHaut,
    1,
    2,
    3,
    ...,
    30;
    ?

    Merci d'avance pour votre aide
    Bonjour,
    tu ne peux pas utiliser de nombre comme identifier, et les enum doivent être des identifier (comme les noms de variable, d'attribut, de méthode)

    L'astuce consiste à donner un attribut et un constructeur à ton énum. Une énum est une classe on peut donc ajouter ce qu'on veut en méthode et constructeur (ne pas en abuser)

    d'autre part, pour les autres noms, il vaut mieux respecter les convention et rester en majuscules

    La syntax pour utiliser le constructeur de l'enum :
    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
    28
    29
    30
    public enum MonEnum {
    LAST("dernierJourDuMois"),
    LOW("auPlusBas"),
    HIGH("auPlusHaut"),
    ONE("1"),
    TWO("2"),
    THREE("3"),
    //...,30
    ;
    private final String value;
     
    /**
     constructeur
     */
    MonEnum(String value){
      this.value=value;
    }
     
    public String getValue(){
      return value;
    }
     
    /**
     pour récupérer la valeur depuis une String.
    */
    public static MonEnum fromValue(String value){
      return java.util.Arrays.asList(values()).stream().filter(e->e.getValue().equals(value)).findFirst().orElse(null);
    }
     
    }

    et donc pour l'utiliser et obtenir la valeur depuis l'enum et l'inverse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    	public static void main(String[] args) {
                     // affiche "dernierJourDuMois"
    		System.out.println(LAST.getValue());
    		MonEnum monEnum = MonEnum.fromValue("2");// monEnum vaut TWO
    		System.out.println();//affiche //TWO
    	}
    Ceci dit d'un point de vue conceptuel, ce serait mieux de séparer les valeur non numériques des numériques et ajouter un objet conteneur. Pour le faire très rapide au brouillon en gros il faut couple (enumType:EnumType, jourOptionnel:entier) avec EnumType{LAST,LOW,HIGH,DAY} et ne préciser le jour que dans le cas "DAY".

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Septembre 2018
    Messages
    52
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2018
    Messages : 52
    Par défaut
    merci à toi.
    Ceci dit d'un point de vue conceptuel, ce serait mieux de séparer les valeur non numériques des numériques et ajouter un objet conteneur
    J'avais pensé séparer les deux dès le début mais j'étais passé à une enum justement parce que je n'avais pas pensé à la classe conteneur lol

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

Discussions similaires

  1. Une requete un peu particulière ...
    Par ZiMammouth dans le forum Langage SQL
    Réponses: 6
    Dernier message: 24/02/2007, 17h27
  2. Une mise page un peu particulière
    Par krapoulos2006 dans le forum Mise en page CSS
    Réponses: 2
    Dernier message: 20/12/2006, 15h45
  3. Saisie automatique un peu particulière
    Par Dobyan08 dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 16/08/2006, 16h35
  4. [mysql4.1.9] Insertion un peu particulière
    Par kei-kun41 dans le forum Requêtes
    Réponses: 2
    Dernier message: 26/04/2006, 08h40
  5. [oracle 8][débutant] Sélection un peu particulière
    Par ken_survivant dans le forum Langage SQL
    Réponses: 3
    Dernier message: 05/11/2004, 09h10

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