自学内容网 自学内容网

巧用switch-case消除条件判断

shigen坚持更新文章的博客写手,记录成长,分享认知,留住感动。个人IP:shigen

在之前的文章中,我们有提交消除if-else代码的方法:

  1. 结合HashMap与Java 8的Function和Optional消除ifelse判断
  2. 巧用枚举消除逻辑判断

现在分享最原始、也是最简单的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,让我们现在回忆下目前知道的消除条件判断的方式:

  1. 借助HashMap
  2. 借助enum枚举类
  3. 借助switch-case

下一篇将会分享结合spring框架IOC能力实现条件判断的消除。

与shigen一起,每天不一样!


原文地址:https://blog.csdn.net/weixin_55768452/article/details/142617155

免责声明:本站文章内容转载自网络资源,如本站内容侵犯了原著者的合法权益,可联系本站删除。更多内容请关注自学内容网(zxcms.com)!