shigen
坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen
在之前的文章中,我们有提交消除if-else代码的方法:
- 结合HashMap与Java 8的Function和Optional消除ifelse判断
- 巧用枚举消除逻辑判断
现在分享最原始、也是最简单的switch-case判断,还是一样先上代码,你会觉得震惊不已:
public String handleQuestionV4(String type, String detail) {return switch (type) {case "A" -> handleQuestionA(detail);case "B" -> handleQuestionB(detail);case "C" -> handleQuestionC(detail);default -> throw new IllegalArgumentException("invalid type: " + type);};
}
对,你没看错,就是短短的几行。这个和lambda表达式的写法很像。它的原始版本是这样的:
这里也不得不赞叹下IDEA的强大,直接把代码优化到如此优雅。
OK,让我们现在回忆下目前知道的消除条件判断的方式:
- 借助HashMap
- 借助enum枚举类
- 借助switch-case
下一篇将会分享结合spring框架IOC能力实现条件判断的消除。
与shigen一起,每天不一样!