正则表达式用于在 Java 中检查变量名以消除许多 IF-ELSE 块


enum MYOPTIONS {
OPTION1,OPTION2,OPTION3 .....OPTION100
}
class test {
JSONObject obj = new JSONObject(jsonString);
public void checkAndAddEnumToList(){
if(listA.contain(MYOPTIONS.OPTION1.toString())){
map.add(MYOPTIONS.OPTION1.toString(),obj.getJSONArray(MYOPTIONS.OPTION1.toString()));
} else if(listA.contain(MYOPTIONS.OPTION2.toString())){
map.add(MYOPTIONS.OPTION2.toString(),obj.getJSONArray(MYOPTIONS.OPTION2.toString()));
}else if(listA.contain(MYOPTIONS.OPTION3.toString())){
map.add(MYOPTIONS.OPTION3.toString(),obj.getJSONArray(MYOPTIONS.OPTION3.toString()));
}
}
}

我有OPTION1要OPTION100,无论如何要避免 If-Else 并将 REGEX 与循环一起使用? 以上只是一个示例。我希望用正则表达式替换 IF-ELSE

对于枚举,您可以使用valueOf(),在Java 8+中使用流(或遍历列表(。

public List<MYOPTIONS> checkAndAddEnumToList(List<String> listA) {
List<Enums.ProfileVisibility> listB = new ArrayList<>();
listA.stream().forEach(i -> listB.add(Enums.ProfileVisibility.valueOf(i)));
return listB;
}

最新更新