Skip to content

Enum mit Static Field / Static Initializer

Verwendung eines static fields/static Initializers innerhalb eines Enums

Die Methode fromValue im Enum ist einfacher zu implementieren (OHNE eine zusätzliche HashMap+Static Initializer usw.)

public enum Type {

    SHA_512("sha512");
    private final String value;

    Type(String value) {
        this.value = value;
    }

    @Override
    public String toString() {
        return this.value;
    }

    @JsonValue
    public String value() {
        return this.value;
    }

    @JsonCreator
    public static Type fromValue(String value) {
        return Arrays.stream(Type.values())
            .filter(value::equals)
            .findFirst()
            .orElseThrow(() -> new IllegalArgumentException(value));
    }

}

Ich habe diese Konstrukte mit eine static variable un der Verwendung einer HashMap in allen Enums im API Modul gefunden.

Edited by Karl Heinz Marbaise