在写分支判断时习惯型的就是
if(action.equals("insert")){
insert(jsonArray);
}
if(action.equals("update")){
update(jsonArray);
}
if(action.equals("delete")){
delete(jsonArray);
}
private void insert(JSONArray jsonArray){
...
}
private void update(JSONArray jsonArray){
...
}
private void delete(JSONArray jsonArray){
...
}
这种写法很繁琐,而且在代码中很容易造成方法过长触发codeCheck
我们可以引用Map和Consumer来替换if的写法
// 初始化
private Map<String, Consumer<JSONArray>> actionMappings = new HashMap<String, Consumer<JSONArray>>(){
{
put("insert", (i) -> insert(i));
put("update", (i) -> update(i));
put("delete", (i) -> delete(i));
}};
private void insert(JSONArray jsonArray){
...
}
private void update(JSONArray jsonArray){
...
}
private void delete(JSONArray jsonArray){
...
}
// 使用
actionMappings.get(action).accept(jsonArray)