感觉比较好用的Enum
发布时间:
更新时间:
🕒 阅读时间:2 min read
👀 阅读量:Loading...
import java.util.HashMap;import java.util.Map;
/** * 计划周期类型 年度计划:1 季度计划:2 月度计划:3 * @author congpeitong * @date 2024-12-22 14:37:58 */public enum PlanPeriodTypeEnum {
YEAR("1", "年度计划"), QUARTER("2", "季度计划"), MONTH("3", "月度计划");
private final String code; private final String name;
PlanPeriodTypeEnum(String code, String name) { this.code = code; this.name = name; }
public String getCode() { return code; }
public String getName() { return name; }
// 使用两个 Map 来存储 name 到 code 和 code 到 name 的映射 private static final Map<String, PlanPeriodTypeEnum> nameToEnumMap = new HashMap<>(); private static final Map<String, PlanPeriodTypeEnum> codeToEnumMap = new HashMap<>(); // 初始化枚举类时构建映射 static { for (PlanPeriodTypeEnum status : values()) { nameToEnumMap.put(status.getName(), status); codeToEnumMap.put(status.getCode(), status); } }
// 通过 name 查找枚举实例 public static PlanPeriodTypeEnum fromName(String name) { return nameToEnumMap.get(name); }
// 通过 code 查找枚举实例 public static PlanPeriodTypeEnum fromCode(String code) { return codeToEnumMap.get(code); }
// 通过 name 查找 code public static String getCodeByName(String name) { PlanPeriodTypeEnum status = nameToEnumMap.get(name); return status != null ? status.getCode() : null; }
// 通过 code 查找 name public static String getNameByCode(String code) { PlanPeriodTypeEnum status = codeToEnumMap.get(code); return status != null ? status.getName() : null; }}
留言评论