Wie definiere ich statische Konstanten in einer Java-Enumeration?

Gibt es eine Möglichkeit zu definieren static final-Variablen (eigentlich Konstanten) in einer Java-enum-Deklaration?

Was ich will, ist zu definieren, an einer Stelle die string-literal mit dem Wert für die BAR(1...n) - Werte:

@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;
}

Bekam ich folgende Fehlermeldung für den obigen code: kann Nicht auf ein Feld, bevor es definiert ist.

Kommentar zu dem Problem
warum hätten Sie so viele Enumerationen, die mit dem gleichen Wert? dies scheint sich völlig gegen das idiom des enums! Kommentarautor: Juvanis
Fehler text ist auch eine Antwort für dein problem !! Kommentarautor: Not a bug
@Juvanis: beachten Sie, dass jede enum-Instanz verfügt über einen eigenen eindeutigen Namen, so dass ich nicht betrachten es als ein Verstoß gegen die Idiome von enums. In meinem Fall, Instanzen von MyEnum fungiert als Schlüssel zu einer Karte, welche Tasten ich will auch Ausgang zu einem externen Ziel. Diese output-Werte werden passiert dasselbe in einigen Fällen entsprechend der Spezifikation. Kommentarautor: jilt3d
@KishanSarsechaGajjar: NÖ, die Antwort ist nicht da. Ich versuchte, um die konstant-Deklaration an Erster Stelle, und ich habe einen anderen Kompilierungsfehler. Kommentarautor: jilt3d

InformationsquelleAutor der Frage jilt3d | 2014-05-12

Schreibe einen Kommentar