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.