/**
 * 录入信息 作者:金鑫 时间:2009-6-1下午04:06:10
 * 
 * @param all 属性
 * @param industryCode 行业代码
 * @return
 */
public boolean addInfo(All all, String industryCode) {
// 初始化参数
addInit(all); if ("01".equals(industryCode)) {
return colligateData.addShoppingInfo(all);
}
else if ("02".equals(industryCode)) {
return colligateData.addFoodInfo(all);
}
else if ("03".equals(industryCode)) {
return colligateData.addEntertainmentInfo(all);
}
else if ("04".equals(industryCode)) {
return colligateData.addDailylifeInfo(all);
}
else if ("05".equals(industryCode)) {
return colligateData.addTourismInfo(all);
}
else if ("06".equals(industryCode)) {
return colligateData.addQuarterInfo(all);
}
else if ("07".equals(industryCode)) {
return colligateData.addBusInfo(all);
}
else if ("08".equals(industryCode)) {
return colligateData.addMedicalInfo(all);
}
else if ("09".equals(industryCode)) {
return colligateData.addEducationInfo(all);
}
return false;
}

解决方案 »

  1.   

    可以试着把01,02,03...这些数字转化成int型的1,2,3..然后用switch
      

  2.   

    可以建一个Map<String,String> methodsMap = new HashMap<String, String>();
    key对应的是'01',...'09'这些,value对应是方法名addEducationInfo(方法名).// 下面的这几行代码大概可以了,Method是java.lang.reflect包下的,别导入错了!
    String methodName = methodsMap.get(industryCode);
    Method method = colligateData.getClass().getMethod(methodName , All.class);
    method.invoke(colligateData,all);