Czy istnieje sposób definiowania statycznych zmiennych końcowych (skutecznie stałych) w deklaracji enum Java?Jak zdefiniować statyczne stałe w wyliczeniu Java?
Co chcę jest zdefiniowanie w jednym miejscu wartość ciągiem znaków na pasek (1 ... n) wartości:
@RequiredArgsConstructor
public enum MyEnum {
BAR1(BAR_VALUE),
FOO("Foo"),
BAR2(BAR_VALUE),
...,
BARn(BAR_VALUE);
private static final String BAR_VALUE = "Bar";
@Getter
private final String value;
}
mam następujący komunikat o błędzie dla powyższego kodu: Nie można odwoływać pole, zanim zostanie zdefiniowane.
dlaczego miałbyś tyle wyrażeń o tej samej wartości? wydaje się to całkowicie sprzeczne z idiomem wyliczenia! – Juvanis
Tekst błędu jest odpowiedzią na Twój problem !! –
@Juvanis: zauważ, że każda instancja wyliczenia ma własną unikalną nazwę, więc nie uważam tego za naruszenie wobec idiomów wyliczeniowych. W moim przypadku instancje MyEnum działają jako klucze do mapy, które klucze również chcę wyprowadzić na zewnętrzny cel. Te wartości wyjściowe są w niektórych przypadkach takie same, zgodnie ze specyfikacją. – jilt3d