1.传统if -else 写法

String nodeModelStr = "";
if (nodeType == NodeType.START){
StartModel startModel = JSON.parseObject(nodeModelStr,StartModel.class)
}else if(nodeType == NodeType.END){
EndModel endModel = JSON.parseObject(nodeModelStr,EndModel.class)
}

2.策略模式写法

使用了lambda表示里,map里key是NodeType,value是方法对象Function<String,BaseModel>(方法入参是String类型,返回值类型是BaseModel)

如下示例中nodeModelStr就是方法入参,返回值是BaseModel

private static Map<NodeType, Function<String,BaseModel>> checkModelTypeDispatcher = new HashMap<NodeType, Function<String, BaseModel>>(){{
put(NodeType.START,nodeModelStr -> JSON.parseObject(nodeModelStr,StartModel.class));
put(NodeType.END,nodeModelStr -> JSON.parseObject(nodeModelStr,EndModel.class));
}};
Function<String,BaseModel> function = checkModelTypeDispatcher.get(nodeType);
BaseModel baseModel = function.apply(JSON.toJSONString(node));

最新文章

  1. Android 自定义RecyclerView 实现真正的Gallery效果
  2. Pig与Hive的区别
  3. 实验三 敏捷开发与XP实践(改)
  4. Shell_Oracle Erp和其他系统Interface资料传输通过Shell进行控制(案例)
  5. wxPython + Boa 练习程序
  6. CentOS7.1 JDK安装 和 CentOS7.1配置yum源
  7. About gpref O(n2) --&gt; O(1)
  8. 把Excel数据导入到数据库
  9. Weekend counter
  10. jar包生制作几种方法,jar包导出三种方法:eclipse导出、jar命令、FatJar插件
  11. easyui datagrid分页参数获取
  12. Java EE基础之JSP(二)
  13. 过滤器Filter(17/4/8)
  14. 使用Asp.Net MVC开发兼职文章系统
  15. window.scroll原生滚动
  16. eMMC ext4综述【转】
  17. jQuery插件初级练习3
  18. 【Algorithm】自底向上的归并排序
  19. Django2.1更新日志
  20. AngularJS入门讲解3:$http服务和路由讲解

热门文章

  1. 详解JavaScript中的正则表达式
  2. pyqt5 多线程+定时器+读取本地图片
  3. Android so注入( inject)和Hook(挂钩)的实现思路讨论
  4. Linux中Tomcat和Jboss的安装和部署
  5. POJ2771最大独立集元素个数
  6. ArrayList初步使用
  7. Java中读取文件的几种路径配置
  8. springboot添加操作
  9. No input file specified.问题的解决
  10. 【转】python SQLAlchemy