gpt4 book ai didi

java - 我可以根据其字段的值获取枚举吗?

转载 作者:IT老高 更新时间:2023-10-28 20:49:47 29 4
gpt4 key购买 nike

我想根据其字段值获取特定的枚举。

枚举:

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


获取新枚举:

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

我一直在想办法让上面的方法恢复一个枚举,这样它就可以存储在 HashMap 中。与其他 Crime信息。

预期结果:ASBO

最佳答案

作为引用,这里有一个 HashMap 的替代解决方案:

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 static final Map<String, CrimeCategory> map = new HashMap<>(values().length, 1);

static {
for (CrimeCategory c : values()) map.put(c.category, c);
}

private final String category;

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

public static CrimeCategory of(String name) {
CrimeCategory result = map.get(name);
if (result == null) {
throw new IllegalArgumentException("Invalid category name: " + name);
}
return result;
}
}

关于java - 我可以根据其字段的值获取枚举吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15370288/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com