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 static erreur d'ecriture sur eclipse


Sujet :

avec Java

  1. #1
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut Enum static erreur d'ecriture sur eclipse
    Voici ma classe ConnectionState.java:
    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
    package framework.connectivity;
     
    public enum ConnectionState
    {
      static
      {
        CONNECTED = new ConnectionState("CONNECTED", 1);
        DISCONNECTED = new ConnectionState("DISCONNECTED", 2);
        ConnectionState[] arrayOfConnectionState = new ConnectionState[3];
        arrayOfConnectionState[0] = CONNECTING;
        arrayOfConnectionState[1] = CONNECTED;
        arrayOfConnectionState[2] = DISCONNECTED;
        $VALUES = arrayOfConnectionState;
      }
     
      private ConnectionState() {}
    }
    Même problème pour une autre classe 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
    public static enum CommandType
      {
        static
        {
          EXECUTE = new CommandType("EXECUTE", 2);
          CommandType[] arrayOfCommandType = new CommandType[3];
          arrayOfCommandType[0] = READ;
          arrayOfCommandType[1] = WRITE;
          arrayOfCommandType[2] = EXECUTE;
          $VALUES = arrayOfCommandType;
        }
     
        private CommandType() {}
      }
    Egalemet cette classe:
    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
    public enum EncryptionType
    {
      static
      {
        AES128 = new EncryptionType("AES128", 1);
        AES256 = new EncryptionType("AES256", 2);
        EncryptionType[] arrayOfEncryptionType = new EncryptionType[3];
        arrayOfEncryptionType[0] = NONE;
        arrayOfEncryptionType[1] = AES128;
        arrayOfEncryptionType[2] = AES256;
        $VALUES = arrayOfEncryptionType;
      }
     
      private EncryptionType() {}
    }
    Comment écrire autrement, eclipse me renvoi plein d'erreurs?

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 565
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 565
    Points : 21 630
    Points
    21 630
    Par défaut
    Hello,

    tu ne peux pas déclarer les constantes enumérées dans un bloc static (ni dans un bloc tout court).
    Les constantes d'un enum doivent être énumérées avant tout, et ensuite tu peux commencer à mettre d'autres choses si tu veux.

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public enum State {
      CONNECTED,
      DISCONNECTED;
      // et pas le moindre static
    }
    mais tu peux aussi donner un état à tes enums si tu veux, comme par exemple indiquer combien de bits utilisent les méthodes AES128 et AES256 :

    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
    public enum EncryptionType {
      AES128(128),
      AES256(256);
     
      // les variables d'état. Là il n'y a que la taille.
      private final int width;
     
      // le constructeur, qui prend un paramètre et permet donc de déclarer les constantes en fournissant ce paramètre.
      private EncryptionType(int width) {
        this.width = width;
      }
     
      // le getter qui permet de récupérer la taille d'une constante EncryptionType
      public int getWidth() {
        return width;
      }
    }
    Rien ne t'empêche de mettre aussi d'autres méthodes, avec les règles habituelles.

    Mais pour tes exemples, tu n'as besoin de rien d'autre.

    - Pour avoir un tableau qui contient toutes les constantes d'un enum :

    Java fait ça pour toi quand tu fais un enum. Pas besoin de t'en occuper.

    Si tu as un enum State, tu peux faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    State[] allPossibleStates = State.values();
    - Pour avoir le nom, sous forme de String, d'une constante enum :

    Java fait ça aussi pour toi. Pas besoin de t'en occuper.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    String nameOfConnected = State.CONNECTED.name();
    - Pour avoir un identifiant unique numérique pour chaque constante d'un enum :

    Java fait ça aussi pour toi. Pas besoin de t'en occuper.
    Il donne un numéro à chaque constante, dans l'ordre de leur déclaration. La première est 0, ensuite 1, ensuite 2, etc.
    Elles ont comme numéro l'index dans laquelle on peut les trouver dans le tableau donné par values().

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int connectedId = State.CONNECTED.ordinal();

  3. #3
    Membre habitué
    Homme Profil pro
    Technicien maintenance
    Inscrit en
    Mai 2008
    Messages
    382
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Loire (Rhône Alpes)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2008
    Messages : 382
    Points : 191
    Points
    191
    Par défaut
    Merci pour avoir détaillé, c'est désormais plus clair

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

Discussions similaires

  1. Erreur de compilation sur Eclipse
    Par DevLib dans le forum Eclipse Java
    Réponses: 8
    Dernier message: 14/09/2011, 17h31
  2. Erreur log4j sur eclipse
    Par zeyeed dans le forum Logging
    Réponses: 6
    Dernier message: 17/04/2009, 12h33
  3. Erreur "Lancement" sur eclipse "neuf"
    Par Haknaton dans le forum Eclipse
    Réponses: 2
    Dernier message: 13/08/2008, 14h21
  4. Réponses: 5
    Dernier message: 08/08/2007, 16h51
  5. message d'erreur sur Eclipse
    Par habbou dans le forum Eclipse Java
    Réponses: 2
    Dernier message: 09/11/2006, 14h18

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