gpt4 book ai didi

java - 使用 Enum 类而不是 Map 来保存常量

转载 作者:行者123 更新时间:2023-11-29 06:50:51 25 4
gpt4 key购买 nike

我有一个像下面这样的 map 来保存一些常量值。将值保存在 Map 中不是一个好习惯。相反,我可以使用枚举来保存这些值。但是我对如何为下面的映射创建枚举感到有点困惑

//Map to store the events
public static final Map<String, Integer[]> OLYMPICS_SPORT_ID_PARAMS = new HashMap<>();
public static final Map<String, Integer[]> OLYMPICS_EVENT_ID_PARAMS = new HashMap<>();
public static final Map<String, Integer[]> OLYMPICS_PHASE_ID_PARAMS = new HashMap<>();
static {
OLYMPICS_SPORT_ID_PARAMS.put("sportId", VALID_SPORT_IDS);
OLYMPICS_EVENT_ID_PARAMS.put("n_EventID", VALID_EVENT_IDS);
OLYMPICS_PHASE_ID_PARAMS.put("n_EventPhaseID", VALID_EVENT_PHASE_IDS);
}

public static final Map<String, Map<String, Integer[]>> OLYMPICS_EVENTS_MAP = new HashMap<>();
static {
OLYMPICS_EVENTS_MAP.put("sportId", OLYMPICS_SPORT_ID_PARAMS);
OLYMPICS_EVENTS_MAP.put("eventId", OLYMPICS_EVENT_ID_PARAMS);
OLYMPICS_EVENTS_MAP.put("eventPhaseId", OLYMPICS_PHASE_ID_PARAMS);
}

有没有创建一个 ENUM 类来映射 OLYMPICS_EVENTS_MAP 的想法?

最佳答案

您可以使用 ENUM 类通过为带主体的 ENUM 创建构造函数和 getter 来存储您的常量。像这样:

public enum MyEnum {

FIRST("1", "my first"),
SECOND("2", "my second"),
THIRD("3", "my third");

private final String value;
private final String description;

MyEnum(String value, String description) {
this.value = value;
this.description = description;
}

public String getValue() {
return value;
}

public String getDescription() {
return description;
}
}

并使用以下方法访问您的值或描述:MyEnum.FIRST.getValue();

关于java - 使用 Enum 类而不是 Map 来保存常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48884550/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com