Intellij Idea 增强型交换机有哪些好处?

ctehm74n  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(101)

最近,我们将代码库从Java 8升级到Java 17。从那时起,IntelliJ IDEA警告旧的switch-case语句:
Switch语句可以替换为增强的'switch'
除了可读性之外,增强的开关还有什么好处?
示例:java 8 switch:

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; }
        }

yptwkmov

yptwkmov1#

IntelliJ blogpost介绍了增强型交换机的三大优势:
1.简洁的代码。
1.可以返回一个值。
1.不需要使用break。在没有break语句的情况下,控件不会通过开关标签,这有助于避免逻辑错误。
在您的特定范例中,您已经从switch陈述式传回,而增强的switch陈述式可能不会提供太多。当旧的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')(的一部分)并取消选择它。

相关问题