缓存枚举属性
public enum TypeEnum {
SINGLE("single")
;
/**
* 属性建议 final 修饰, 且不提供 setter
*/
private final String name;
private TypeEnum(String name) {
this.name = name;
}
public String getName() {
return name;
}
/**
* 缓存
*/
private static final Map<String, TypeEnum> cache = new HashMap<>(values().length);
static {
for (TypeEnum typeEnum: values()) {
cache.put(typeEnum.name, typeEnum);
}
}
/**
* <h3>
* 根据某个属性获取具体的 Enum <br>
* 方式一
* </h3>
* @param name {@code String} 属性值 name
* @return {@link TypeEnum}
*/
public static TypeEnum getTypeEnum(String name) {
// for (TypeEnum typeEnum: values()) {
// if (typeEnum.name.equals(name)) {
// return typeEnum;
// }
// }
// return null;
return cache.get(name);
}
}
进阶使用
策略枚举
状态机