Kann ich eine enum-basierend auf dem Wert aus dem Feld?

Möchte ich, um eine bestimmte enum-basierend auf seinem Feld Wert.

Enum:

public enum CrimeCategory {
    ASBO ("Anti Social Behaviour"),
    BURG ("Burglary"),
    CRIMDAM ("Criminal Damage And Arson"),
    DRUGS ("Drugs"),
    OTHTHEFT ("Other Theft"),
    PUPDISOR ("Public Disorder And Weapons"),
    ROBBERY ("Robbery"),
    SHOPLIF ("Shoplifting"),
    VEHICLE ("Vehicle Crime"),
    VIOLENT ("Violent Crime"),
    OTHER ("Other Crime");

    private  String category;


    private CrimeCategory (String category) {
        this.category = category;
    }

    public String returnString() {
        return category; 
    }
}


Bekommen ein neues Enum:

aStringRecivedFromJson = "Anti Social Behaviour"
CrimeCategory crimeCategoryEnum;
crimeCategoryEnum = CrimeCategory.valueOf(aStringRecivedFromJson); 

Ich habe versucht, herauszufinden, einen Weg für die oben wieder ein enum, damit es weitergegeben werden kann, gespeichert in einer HashMap mit anderen Crime Informationen.

Erwartete Ergebnis: ASBO

  • toString() geben Sie eine String-Darstellung der Enum-es sei denn, Sie überschreiben.
  • fyi, du bist nicht wirklich 'initialisiert eine neue enum' mit dem Beispiel-code. Können Sie das nicht tun, in der Tat, da Enumerationen in Java sind effektiv singletons. Sie wirklich suchen, eine bestehende enum-Wert.
InformationsquelleAutor Jethro | 2013-03-12
Schreibe einen Kommentar