Java-Enum-Beispiel

Beispiel für eine Java-Aufzählung

Einige der Java-Enum-Beispiele und ihre Verwendung sind nichts Besonderes, nur zur Selbstreferenz.

Note
Berücksichtigen Sie den Aufzählungstyp, wenn Ihr Programm aus einem festen Satz von Konstanten besteht, z. B. Jahreszeiten, Operationsrechner, Benutzerstatus usw.

1. Grundlegende Aufzählung

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. Enum + Instanzfeld

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 + Methode + Einige Logik

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. So verwenden Sie 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);
        }

    }

}

Ausgabe

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());
        }

    }

}

Ausgabe

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);

        }

    }
}

Ausgabe

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));

    }
}

Ausgabe

30.0

Erledigt.