Tiger prend en charge linguistiquement les types répertoriés dans le langage de programmation Java ™. La forme la plus simple d'énumération est similaire aux formats C, C ++ et C #.
package com.example.enums;
/**Définir un type d'énumération simple*/
public enum MetaName {
  FOO, BAR, BAZ;
}
package com.example.enums;
/**Définir un type d'énumération avec une valeur*/
public enum OneValueEnum {
  ONE(1), TWO(2), THREE(3);
  private final int number;
  /**
   *Générez une constante d'énumération avec une valeur.
   */
  OneValueEnum(int number) {
    this.number = number;
  }
  /**
   *Préparez une méthode qui renvoie une valeur.
   */
  public int getNumber() {
    return number;
  }
  /**
   *Renvoie une constante d'énumération qui correspond à la valeur.
   */
  public static OneValueEnum getByNumber(int number) {
    //Traitement qui identifie et renvoie une constante d'énumération à partir d'une valeur
    for (OneValueEnum value : OneValueEnum.values()) {
      if (value.getNumber() == number) {
        return value;
      }
    }
    return null; //Si non identifiable
  }
}
package com.example;
import com.example.enums.MetaName;
import com.example.enums.OneValueEnum;
public class Main {
  public static void main(String[] args) {
    testMetaName();
    testOneValueEnum();
  }
  private static void testMetaName() {
    try {
      //Vous pouvez obtenir une constante Enum à partir d'une chaîne à l'aide de la méthode valueOf générée automatiquement
      System.out.println("***** FOO *****");
      MetaName foo = MetaName.valueOf("FOO");
      System.out.println("foo.getClass=" + foo.getClass());
      System.out.println("foo.getDeclaringClass=" + foo.getDeclaringClass());
      System.out.println("foo.toString=" + foo.toString());
      //IllegalArgumentException se produit lorsque vous essayez d'obtenir une constante inexistante
      System.out.println("***** bar *****");
      MetaName bar = MetaName.valueOf("bar");
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
  private static void testOneValueEnum() {
    try {
      //Vous pouvez obtenir une constante Enum à partir d'une chaîne à l'aide de la méthode valueOf générée automatiquement
      System.out.println("***** ONE *****");
      OneValueEnum one = OneValueEnum.valueOf("ONE");
      System.out.println("one.getClass=" + one.getClass());
      System.out.println("one.getDeclaringClass=" + one.getDeclaringClass());
      System.out.println("one.toString=" + one.toString());
      System.out.println("one.getNumber=" + one.getNumber());
      //Pour obtenir la constante Enum qui correspond à la valeur, vous devez l'implémenter vous-même.
      System.out.println("***** 1 *****");
      OneValueEnum ichi = OneValueEnum.getByNumber(1); //Appelez votre propre méthode de mise en œuvre
      System.out.println("ichi.getClass=" + ichi.getClass());
      System.out.println("ichi.getDeclaringClass=" + ichi.getDeclaringClass());
      System.out.println("ichi.toString=" + ichi.toString());
      System.out.println("ichi.getNumber=" + ichi.getNumber());
      //Puisqu'aucune constante Enum ne correspond à la valeur, null est renvoyé.
      // (Comme il est auto-implémenté, vous pouvez effectuer n'importe quel traitement)
      System.out.println("***** 9 *****");
      OneValueEnum kyu = OneValueEnum.getByNumber(9);
      System.out.println("kyu=" + kyu);
    } catch (Exception e) {
      e.printStackTrace();
    }
  }
}
Placez le code source.
$ tree
.
└── src
    └── com
        └── example
            ├── Main.java
            └── enums
                ├── MetaName.java
                └── OneValueEnum.java
Créez un répertoire pour la sortie du fichier de classe.
$ mkdir dest
Compilez avec la commande javac.
$ javac -sourcepath src src/com/example/Main.java -d dest
Confirmez que le fichier de classe a été généré.
$ tree
.
├── dest
│   └── com
│       └── example
│           ├── Main.class
│           └── enums
│               ├── MetaName.class
│               └── OneValueEnum.class
└── src
    └── com
        └── example
            ├── Main.java
            └── enums
                ├── MetaName.java
                └── OneValueEnum.java
$ java -classpath dest com.example.Main
***** FOO *****
foo.getClass=class com.example.enums.MetaName
foo.getDeclaringClass=class com.example.enums.MetaName
foo.toString=FOO
***** bar *****
java.lang.IllegalArgumentException: No enum constant com.example.enums.MetaName.bar
	at java.lang.Enum.valueOf(Enum.java:238)
	at com.example.enums.MetaName.valueOf(MetaName.java:3)
	at com.example.Main.testMetaName(Main.java:23)
	at com.example.Main.main(Main.java:9)
***** ONE *****
one.getClass=class com.example.enums.OneValueEnum
one.getDeclaringClass=class com.example.enums.OneValueEnum
one.toString=ONE
one.getNumber=1
***** 1 *****
ichi.getClass=class com.example.enums.OneValueEnum
ichi.getDeclaringClass=class com.example.enums.OneValueEnum
ichi.toString=ONE
ichi.getNumber=1
***** 9 *****
kyu=null