exemple Java enum

Exemple d'énumération Java

Certains des exemples d'énumérations Java, et comment l'utiliser, rien de spécial, juste pour l'auto-référence.

Note
Considérez le type Enum si votre programme se compose d'un ensemble fixe de constantes, comme les saisons de l'année, le calculateur d'opérations, le statut de l'utilisateur, etc.

1. Énumération de base

UserStatus.java

public enum UserStatus {
    PENDING,
    ACTIVE,
    INACTIVE,
    DELETED;
}

Test.java

public class Test {

    public static void main(String[] args) {

        //ACTIVE
        System.out.println(UserStatus.ACTIVE);

    }

}

2. Champ Enum + Instance

WhoisRIR.java

public enum WhoisRIR {
    ARIN("whois.arin.net"),
    RIPE("whois.ripe.net"),
    APNIC("whois.apnic.net"),
    AFRINIC("whois.afrinic.net"),
    LACNIC("whois.lacnic.net"),
    JPNIC("whois.nic.ad.jp"),
    KRNIC("whois.nic.or.kr"),
    CNNIC("ipwhois.cnnic.cn"),
    UNKNOWN("");

    private String url;

    WhoisRIR(String url) {
        this.url = url;
    }

    public String url() {
        return url;
    }
}

Test.java

public class Test {

    public static void main(String[] args) {

        //whois.arin.net
        System.out.println(WhoisRIR.ARIN.url());

    }

}

3. Enum + Méthode + Un peu de logique

Operation.java

public enum Operation {
    PLUS,
    MINUS,
    TIMES,
    DIVIDE;

    double calculate(double x, double y) {
        switch (this) {
            case PLUS:
                return x + y;
            case MINUS:
                return x - y;
            case TIMES:
                return x * y;
            case DIVIDE:
                return x / y;
            default:
                throw new AssertionError("Unknown operations " + this);
        }
    }

}

Test.java

public class Test {

    public static void main(String[] args) {

        double result = Operation.PLUS.calculate(1, 2);
        System.out.println(result); //3.0

    }

}

4. Comment utiliser Enum

4.1 To loop a Enum object.

public class Test {

    public static void main(String[] args) {

        for (UserStatus status : UserStatus.values()) {
            System.out.println(status);
        }

    }

}

Sortie

PENDING
ACTIVE
INACTIVE
DELETED

4.2 To compare the Enum values, use == operator.

public class Test {

    public static void main(String[] args) {

        WhoisRIR rir = WhoisRIR.APNIC;

        if(rir == WhoisRIR.APNIC) {
            System.out.println("This is APNIC : " + rir.url());
        }

    }

}

Sortie

This is APNIC : whois.apnic.net

4.3 Switch case.

public class Test {

    public static void main(String[] args) {

        WhoisRIR rir = WhoisRIR.RIPE;

        switch (rir) {
            case ARIN:
                System.out.println("This is ARIN");
                break;
            case APNIC:
                System.out.println("This is APNIC");
                break;
            case RIPE:
                System.out.println("This is RIPE");
                break;
            default:
                throw new AssertionError("Unknown RIR " + rir);

        }

    }
}

Sortie

This is RIPE

4.2 Convert a String to Enum object.

public class Test {

    public static void main(String[] args) {

        //enum valueOf + uppercase
        Operation op = Operation.valueOf("times".toUpperCase());
        System.out.println(op.calculate(10, 3));

    }
}

Sortie

30.0

Terminé.