web-dev-qa-db-fra.com

Comment puis-je déclarer des enums en utilisant java

Je souhaite convertir cet exemple de code C # en un Java:

public enum myEnum {
  ONE = "one",
  TWO = "two",
}; 

Parce que je veux changer cette classe constante en enum

public final class TestConstants {
    public static String ONE = "one";
    public static String TWO= "two";
}
41
newbie
public enum MyEnum {
   ONE(1),
   TWO(2);
   private int value;
   private MyEnum(int value) {
      this.value = value;
   }
   public int getValue() {
      return value;
   }
}

En bref, vous pouvez définir un nombre illimité de paramètres pour l'énumération, à condition de fournir des arguments de constructeur (et de définir les valeurs pour les champs respectifs).

Comme Scott l'a noté - le documentation officielle enum vous donne la réponse. Commencez toujours par la documentation officielle des fonctionnalités et des constructions linguistiques.

Mise à jour: pour les chaînes, la seule différence est que votre argument de constructeur est String et que vous déclarez des enums avec TEST("test").

86
Bozho

enums sont classes en Java. Ils ont une valeur ordinale implicite, commençant à 0. Si vous voulez stocker un champ supplémentaire, faites-le comme pour toute autre classe:

public enum MyEnum {

    ONE(1),
    TWO(2);

    private final int value;

    private MyEnum(int value) {
        this.value = value;
    }

    public int getValue() {
        return this.value;
    }
}
14
JB Nizet

Tout simplement comme suit:

/**
 * @author The Elite Gentleman
 *
 */
public enum MyEnum {
    ONE("one"), TWO("two")
    ;
    private final String value;

    private MyEnum(final String value) {
        this.value = value;
    }

    public String getValue() {
        return value;
    }

    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return getValue();
    }
}

Pour plus d’informations, visitez le site Types d’énumération d’Oracle Java Tutoriels. Notez également que les énums ont private constructeur.


Mettre à jour , depuis que vous avez mis à jour votre message, j'ai changé ma valeur d'un int à un String .
Connexes: énumération de chaînes Java .

8
Buhake Sindi

En Java, vous pouvez également créer une énumération paramétrée. Disons que vous voulez créer une énumération className, dans laquelle vous devez stocker classCode ainsi que className, vous pouvez le faire comme ceci:

public enum ClassEnum {

    ONE(1, "One"), 
    TWO(2, "Two"),
    THREE(3, "Three"),
    FOUR(4, "Four"),
    FIVE(5, "Five")
    ;

    private int code;
    private String name;

    private ClassEnum(int code, String name) {
        this.code = code;
        this.name = name;
    }

    public int getCode() {
        return code;
    }

    public String getName() {
        return name;
    }
}
5
ahmar hashmi
public enum MyEnum
{
    ONE(1),
    TWO(2);

    private int value;

    private MyEnum(int val){
        value = val;
    }

    public int getValue(){
        return value;
    }
}
4
Petar Ivanov
public enum NewEnum {
   ONE("test"),
   TWO("test");

   private String s;

   private NewEnum(String s) {
      this.s = s);
   }

    public String getS() {
        return this.s;
    }
}
2
ssedano