gpt4 book ai didi

java - 返回正确的枚举而不使用 if

转载 作者:行者123 更新时间:2023-12-01 18:12:12 24 4
gpt4 key购买 nike

如果出现以下情况,我有任务更改此设置:

if (userDecision.equalsIgnoreCase("D")) {
return DirectoriesActivity.DELETE;
} else if (userDecision.equalsIgnoreCase("R")) {
return DirectoriesActivity.REPLACE;
} else {
return DirectoriesActivity.ADD_NEW_CONTENTS;
}

在某些内容上,将仅返回枚举而不使用 if。我必须使用一些枚举属性,但我不知道是哪一个:/这是我的枚举:

public enum DirectoriesActivity {
DELETE,
REPLACE,
ADD_NEW_CONTENTS;
}

我尝试做这样的事情:

public enum DirectoriesActivity {
DELETE ("D"),
REPLACE ("R"),
ADD_NEW_CONTENTS ("A");

private String directoriesActivityCode;
private DirectoriesActivity(String directoriesActivityCode) {
this.directoriesActivityCode = directoriesActivityCode;
}

public DirectoriesActivity getEnum(String x){
//no idea what to do here
}
}

或者也许有人有其他想法?

最佳答案

您可以添加 map 查找。

static Map<String, DirectoriesActivity> lookup = new HashMap<>();

static {
// iterate over all the values and
// put the value we want to lookup as the key to the map.
for(DirectoriesActivity da: values())
lookup.put(da.directoriesActivitCode, da);
}

public static DirectoriesActivity lookup(String s) {
// lookup the map we built in the static block.
return s == null ? null : lookup.get(s.toUppercase());
}

这样您就可以添加任意数量的代码,而无需更改代码。

关于java - 返回正确的枚举而不使用 if,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32134928/

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