Java Language Enum avec des propriétés (champs)


Exemple

Dans le cas où nous souhaitons utiliser enum avec plus d'informations et pas seulement comme des valeurs constantes, nous voulons pouvoir comparer deux énumérations.

Prenons l'exemple suivant:

public enum Coin {
    PENNY(1), NICKEL(5), DIME(10), QUARTER(25);

    private final int value;

    Coin(int value){
        this.value = value;
    }

    public boolean isGreaterThan(Coin other){
        return this.value > other.value;
    }

}

Ici, nous avons défini un Enum appelé Coin qui représente sa valeur. Avec la méthode isGreaterThan on peut comparer deux enum s:

Coin penny = Coin.PENNY;
Coin dime = Coin.DIME;

System.out.println(penny.isGreaterThan(dime)); // prints: false
System.out.println(dime.isGreaterThan(penny)); // prints: true