报告每个分支都有通用子表达式,因此 switch 可以移动到内部的 switch 表达式和语句。 此操作会缩短代码。 在许多情况下,将得到的 switch 表达式提取到单独的变量或方法是合理的。

示例:


  switch (value) {
    case 0 -> System.out.println("zero");
    case 1 -> System.out.println("one");
    case 2, 3, 4 -> System.out.println("few");
    default -> System.out.println("many");
  }

在应用快速修复后:


  System.out.println(switch (value) {
    case 0 -> "zero";
    case 1 -> "one";
    case 2, 3, 4 -> "few";
    default -> "many";
  });

此检查仅适用于采用箭头语法的增强 switch。

2022.3 最新变化