我已经阅读了很多关于代码重构和避免if else语句的主题。 其实,我有一个课,我使用了很多if - else条件。如何避免很多其他条件
更多细节:我使用的是拉解析器和我SOAP响应的每一行,我会检查是否有标签我感兴趣的,如果没有,检查另一个标记等:
if(eventType == XmlPullParser.START_TAG) {
soapResponse= xpp.getName().toString();
if (soapResponse.equals("EditorialOffice")){
eventType = xpp.next();
if (xpp.getText()!=null){
editorialOffice += xpp.getText();
}
}
else if (soapResponse.equals("EditorialBoard")){
eventType = xpp.next();
if (xpp.getText()!=null){
editorialBoard += xpp.getText();
}
}
else if (soapResponse.equals("AdvisoryBoard")){
eventType = xpp.next();
if (xpp.getText()!=null){
advisoryBoard += xpp.getText();
}
}
}
eventType = xpp.next();
}
现在,我想用其他的,而不是那些如果其他条件,但我不知道是什么。
你可以给我一个例子或一个很好的教程页吗?
谢谢。
你可以维护字符串到程序中其他地方的枚举映射,从映射中抽出与返回字符串关联的枚举(如果字符串不在映射中,则使用默认的'NO_MATCH')并写入在枚举上切换语句。它可能会使代码更清晰,但会增加额外的间接层。你必须判断这是否值得。 – 2012-04-16 14:24:42
检查: http://stackoverflow.com/questions/519422/what-is-the-best-way-to-replace-or-substitute-if-else-if-else-trees-在程序中 希望对您有所帮助 – 2012-04-16 14:27:54
请注意,出于性能方面的原因,您应该使用StringBuilder而不是+ =来连接字符串。 – 2012-04-19 14:40:19