代码中如何避免过多的if else

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了代码中如何避免过多的if else相关的知识,希望对你有一定的参考价值。

参考技术A private static final Map<String, String optionsMap;static optionsMap = new HashMap<String, String();
optionsMap.put("delete", "doDeleteCat");
optionsMap.put("modify", "doModifyCat");
optionsMap.put("create", "doCreateCat");
optionsMap.put("addCondMap", "doAddCondMap");
optionsMap.put("delCondMap", "doDelCondMap");
public void execute(RunData rundata, TemplateContext context)
rundata.getModuleInfo().setLayoutTemplate("emptyLayout.vm");
boolean rs = false;
String optionMethod = optionsMap.get(rundata.getParameters().getString("option"));
if (StringUtils.isNotBlank(optionMethod)) try Method method = this.getClass()
.getMethod(optionMethod, RunData.class);
rs = (Boolean) method.invoke(this, rundata);
catch (Throwable e)
this.getLogger().error("invoke method:" + optionMethod + " failure!", e);context.put("status", rs ? STATUS_SECCESS : STATUS_FAILURE);public boolean doCreateCat(RunData rundata)
long parentId = rundata.getParameters().getLong("parent_id", -1L);
int nsId = rundata.getParameters().getInt("ns_id", -1);
String catName = rundata.getParameters().getString("cat_name", "");
return vtdCategoriesAdminAO.createVtdCategory(nsId, parentId, catName);
在这里,即使以后增加操作也只需要改变MAP不需要对调用代码进行任何修改本回答被提问者采纳

以上是关于代码中如何避免过多的if else的主要内容,如果未能解决你的问题,请参考以下文章

如何避免一连串的if else

如何避免在 .where() 函数中使用 IF-Else 并使用内联 if 条件?

如何解决代码中if…else 过多的问题

9个小技巧让你的 if else看起来更优雅

9个小技巧让你的 if else看起来更优雅

避免多个 if exists, else if exits 用于内部使用的不同连接的语句