多个if条件,如何优化它

时间:2012-09-26 06:40:41

标签: java

我正在处理一个大型应用程序,它具有不同的条件(ifs)和与之关联的不同方法。请建议一种方法来优化下面提到的代码(尽可能减少嵌套ifs)。我希望代码能够能够轻松地结合任何其他特定条件。(我使用属性文件来获取条件)

 public getParameter(String parameter)
    {
      if(parameter=specific condition1
        ||parameter=specific condition2)
      {
      do this
      }
      if(parameter=specific condition3)
      {
       do something else
      }
      if(parameter=specific condition4)
      {
       do something else
      }
      if(parameter=general condition)
      {
       do something else
      }
      else  {
       do something else
      }

2 个答案:

答案 0 :(得分:2)

假设您有一个带

的属性文件
do1=val1,val2,val3
do2=val5,val6,val7

(看来你有一套固定的行动)

您可以使用

加载它
    HashMap<String, HashSet<String>> rules = new HashMap<String, HashSet<String>>();
    for(String key : properties.stringPropertyNames()) {
        HashSet<String> set = new HashSet<String>();
        set.addAll(Arrays.asList(properties.getProperty(key).split(",")));
        rules.put(key, set);
    }

现在你有一个地图将动作名称(“do1”等)链接到可能的值集(“val1”等)。

您可以使用

执行规则
    if (rules.get("do1").contains(parameter)) do1();
    if (rules.get("do2").contains(parameter)) do2();

(我允许你添加必要的检查以避免例如空指针异常)

答案 1 :(得分:0)