首页 > 解决方案 > 语言级别 7 不支持增强的“开关”块 - Android Studio

问题描述

我使用了一个 switch 语句,它从微调器中获取字符串值。现在,有很多这样的字符串值。它看起来像这样:

switch (spin.getSelectedItem()) {
    case "first option", "second option", "third option":
         result = 1;
         break;
    case "fourth option", "fifth option", "sixth option":
         result = 2;
         break;
    case "seventh option", "eighth option", "ninth option";
         result = 3;
         break;
}

但是,出现一个错误,提示语言级别 7 不支持增强的开关块。我尝试在模块设置中更改源兼容性和目标兼容性,但它仍然不起作用。非常感谢任何建议和帮助。

标签: javaandroidandroid-studio

解决方案


不支持的部分是这样的:

case "first option", "second option", "third option":

它们是多值标签,在成为标准的 Java 14 之前确实不受支持。

相反,您需要的是:

switch (spin.getSelectedItem()) {
    case "first option":
    case "second option":
    case "third option":
        result = 1;
        break;
    /** rest of the code here
}

如果标签后没有break关键字,则默认情况下切换“通过”到它下面的下一个标签。


推荐阅读