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

用于在Java中检查变量名以消除许多IF-ELSE块的正则表达式,java,json,enums,Java,Json,Enums,我有选项1到选项100,无论如何都要避免If-Else,并使用带有循环的正则表达式? 以上只是一个例子。我希望用regex替换IF-ELSE,对于枚举,您可以使用valueOf(),在Java8+中使用流(或遍历列表) 公共列表检查和附加列表(列表A){ List listB=新的ArrayList(); listA.stream().forEach(i->listB.add(Enums.ProfileVisibility.valueOf(i)); 返回列表b; } 对于选项1到100?是。我不

我有选项1到选项100,无论如何都要避免If-Else,并使用带有循环的正则表达式?
以上只是一个例子。我希望用regex替换IF-ELSE,对于枚举,您可以使用
valueOf()
,在Java8+中使用流(或遍历列表)

公共列表检查和附加列表(列表A){
List listB=新的ArrayList();
listA.stream().forEach(i->listB.add(Enums.ProfileVisibility.valueOf(i));
返回列表b;
}

对于
选项1到100?是。我不想要基于选项{1-100}和setValue的100 IF-ELSE块IF条件,同样的选项{1-100}看起来拥有一个选项的数组列表并遍历它会容易得多,将“found”元素从列表A添加到列表BYou应该迭代
MYOPTIONS.values()
。虽然实际迭代
listA
可能更有效,但使用
MYOPTIONS.valueOf()
解析每个值,并在解析成功时添加它。的可能重复。
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()));
   }
  }
}
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;
}