如何在值的基础上获取枚举



我有一个枚举

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

我想在枚举值的基础上得到它。我有值为Non-ResidentialString,那么我如何获得返回`NonResidential的枚举。

我想创造自己的魔法,而不是java支持的东西。我读过很多这样的问题,但我想要不同的答案。

这里没有魔法,因为它是您自己的定义字段("类别"),您应该编写自己的静态方法来进行搜索。例如:

public enum Category {
  ...
        public static Category findByName(String cat){
            // loop over Category.values() and find the requested cat
        }

如果您提供枚举名称(例如"NonResidential"),btw ValueOf将起作用,但它不适用于类别名称(例如,"非住宅")

使用valueOf

Category.valueOf("Non-Residential");

这将返回枚举。

最新更新