增强型交换机有什么好处?

问题描述 投票:0回答:1

最近,我们将代码库从 Java 8 升级到 Java 17。从那时起,IntelliJ IDEA 就旧的 switch-case 语句发出警告:

Switch 语句可以替换为增强的“switch”

除了可读性之外,增强型开关还有哪些好处?

示例:java 8 开关:

        switch (foo) {
            case "bla": return 1;
            case "bla_bla": return 2;
        }

接受后

Switch statement can be replaced with enhanced 'switch'
看起来像这样:

        switch (foo) {
            case "bla" -> { return 1; }
            case "bla_bla" -> { return 2; }
        }
java intellij-idea switch-statement
1个回答
3
投票

IntelliJ 博文谈论了增强型交换机的三个好处:

  1. 简洁的代码。
  2. 可以返回一个值。
  3. 无需使用
    break
    。如果没有break语句,控件不会落入开关标签,这有助于避免逻辑错误。

在您的特定示例中,您已经从 switch 语句返回,增强的 switch 语句可能不会提供太多功能。当旧开关使用值分配和中断时,增强型开关改进了代码。例如:

int height = 0; 
    switch (size) {
        case S:
            height = 18;
            // missing break (bug)
        case M:
            height = 20;
            break;
        case L:
            height = 25;
            break;
    }

增强为:

int height = 0; 
    switch (size) {
        case S -> height = 18;
        case M -> height = 20;
        case L -> height = 25;
    }

但是,如果您希望不再收到此警告,可以在 IntelliJ IDEA 中将其关闭。为此,请打开首选项,然后转到编辑器 -> 检查(我使用的是版本 2023.1)。搜索(部分)警告 (

Switch statement can be replaced with enhanced 'switch'
) 并取消选择它。

© www.soinside.com 2019 - 2024. All rights reserved.