我有一个枚举
public enum Category {
NonResidential("Non-Residential"), Residential("Residential");
private String category;
BuildingAssetCategory(String s) {
category = s;
}
public String getType() {
return category;
}
public void setType(String type) {
this.category = type;
}
}
我希望在它的价值基础上获得枚举。
我有String
的值Non-Residential
,那我怎样才能让enum返回'NonResidential。
P.S我想创建自己的魔法而不是java支持的东西。 我已经读出了许多像this这样的问题,但我想要不同的答案。
答案 0 :(得分:3)
这里没有魔法,因为它是你自己的定义字段('category')你应该编写自己的静态方法来搜索它。例如:
public enum Category {
...
public static Category findByName(String cat){
// loop over Category.values() and find the requested cat
}
btw如果您提供枚举名称(例如“NonResidential”),ValueOf将起作用,但它不适用于类别名称(例如“非住宅”)
答案 1 :(得分:0)
使用valueOf
。
Category.valueOf("Non-Residential");
这将返回枚举。