Mit Enum ist ordinalen Wert in switch-case-Anweisung

Für mein Projekt bin ich mit enums und ich brauche zur Umsetzung der switch-case-Anweisung, wo die Ordnungszahlen der Werte der bestimmten Enum geprüft werden, wie dieser Weg:

        switch ( variable )
        {
        case MyEnum.A.ordinal():
            return true;
        case MyEnum.B.ordinal():
            return true;
        default:
            return false;
        }

Hinweis: Rückgabe-Werte sind nur ein Beispiel.

Leider, Eclipse (ich bin mit 1.6 JDK) gibt meine Zusammenstellung-Fehler " - Fall
Ausdrücke müssen Konstante Ausdrücke". Was sollte ich tun? Gibt es eine andere Methode als statische lookup-Tabelle, hier beschrieben: Konvertieren von enum Ordnungszahl zu enum-Typ ?

  • Ich glaube, ich verstehe nicht, warum man mit der Ordnungszahl. Warum können Sie nicht einfach schalten Sie das enum selbst?
  • Einfach nur neugierig, aber warum bist du mit enums, wenn Sie dann Variablen verwenden die ordinale Werte? Der Punkt des enums ist Ihre Art Sicherheit, aber die variable ist nicht Typ-sicher.. Naja, es könnte so etwas einfaches wie die Herstellung der Ordinalwert eine öffentliche Konstante Attribut statt der Zugriff über eine getter-Methode.
  • Weil ich muss ordinalen Wert - enum-Werte sind nicht sinnvoll, für diesen bestimmten Zweck, denn Sie stehen in keinem Zusammenhang zu den Ergebnissen der switch-Anweisung.
  • Ich muss zugeben, das macht für mich keinen Sinn - Wie kann man den enum-Wert nicht auf das Ergebnis der switch-Wert? Die Ordnungszahl wird nur ein index auf die enum-Werte (ein index, der sich ändern kann, wenn Sie fügen Sie ein neues enum-Wert) - Die Ordnungszahlen, indem es die Natur ist nichts weiter als eine vorübergehende Eigenschaft des enum.
  • durch die Art und Weise, was Sie Fragen ist EnumSet
  • Die enum-Mitglied kann werden gespeichert in einer Datenbank (mit Ihrer Ordnungszahl Wert), in dem Fall ist das nötig.

InformationsquelleAutor DoktorNo | 2011-07-23
Schreibe einen Kommentar