网上定义的枚举大多是遍历进行查找 不是很优雅,可以构建一个Map 进行查找 时间复杂度也降低很多了 代码如下
import java.util.HashMap;
import java.util.Map;
/**
* 权限name和权限对应值枚举
**/
public enum Permissions {
/**
* 查询
*/
QUERY(1, "QUERY"),
/**
* 增加
*/
ADD(1 << 1, "ADD"),
/**
* 修改
*/
MODIFY(1 << 2, "MODIFY"),
/**
* 删除
*/
DEL(1 << 3, "DEL"),
;
private Integer value;
private String description;
public Integer getValue() {
return value;
}
public void setValue(Integer value) {
this.value = value;
}
public String getDescription() {
return description;
}
public void setDescription(String description) {
this.description = description;
}
Permissions(Integer value, String description) {
this.value = value;
this.description = description;
}
private static Map<String, Permissions> permissionsMap = new HashMap<>();
static {
for (Permissions value : Permissions.values()) {
permissionsMap.put(value.getDescription(), value);
}
}
public Permissions find(String permissionName) {
return permissionsMap.get(permissionName);
}
}
|