我的条件是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方法,也就是有一个字符串转换成方法,并且执行,这个情况用反射最简单了,不需要分支条件。