小白求助,求大神帮忙修改下代码

我的条件是condition=1|2|3|4|5....

if (source.getProperty("condition" + NUM).equals("1")) {
        return p.panduan1(readrow, source);
    } else if (source.getProperty("condition" + NUM).equals("2")) {
        return p.panduan2(readrow, source);
    } else if (source.getProperty("condition" + NUM).equals("3")) {
        return p.panduan3(readrow, source);.
        ...

我想返回某几个conditon求且运算后的值,我想把conditon存到数组里
String conditon = source.getProperty("conditon" + NUM);
String[] conditons = conditon.split("\|");

你是想对这段代码进行重构么?JDK1.7支持String类型作为switch分支的值了,可以修正如下:

 String source = source.getProperty("condition" + NUM);
 String result  = null;
 swtich(source){
     case "1":
              result = p.panduan1(readrow, source);
          break;
         case "2":
               result = p.panduan2(readrow, source);
          break;
         case "3":
          result = p.panduan3(readrow, source);
          break;
 }
  return result;

说实话,还是没明白你的第一段代码和第二段代码之间的联系,你的需求能描述清楚些吗?

String conditon = source.getProperty("conditon" + NUM);
String[] conditons = conditon.split("|");
String result = null;
for(String str : conditons){
if(条件1.equals(str)||条件2.equals(str)){
result = p.panduan3(readrow, str);
}
}
return result;

不知道你是不是是这样的意思!

就你的场景,根据1234执行panduanx方法,也就是有一个字符串转换成方法,并且执行,这个情况用反射最简单了,不需要分支条件。