Używam tej techniki często, ale nie jestem pewien, jak to nazwać. Nazywam to asocjacyjnym wyliczeniem. Czy to jest poprawne?Co by nazwał ten wzór enum?
Przykład:
public enum Genders {
Male("M"), Female("F"), Transgender("T"), Other("O"), Unknown("U");
private String code;
Genders(String code) {
this.code = code;
}
public String getCode() {
return code;
}
public static Genders get(String code) {
for (Genders gender : values()) {
if (gender.getCode().equalsIgnoreCase(code)) {
return gender;
}
}
return null;
}
}
Nie wiedziałem nawet, że możesz napisać taki kod! –
To nie jest wzór. Jest to zwykły kod, który rozumie, że wyliczenia są klasami. Robię to również często, ale nazwałbym enum Płeć (bez s) i wyrzucił wyjątek IllegalArgumentException zamiast zwracać wartość null, aby być zgodnym z valueOf() –
. Co konkretnie nazywasz tutaj "wzorem"? Czy to jest fakt, że masz metodę "get"? – templatetypedef