java - 语言级别 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 不支持增强的开关块。我尝试在模块设置中更改源兼容性和目标兼容性,但它仍然不起作用。非常感谢任何建议和帮助。
解决方案
不支持的部分是这样的:
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
关键字,则默认情况下切换“通过”到它下面的下一个标签。
推荐阅读
- google-cloud-firestore - Firestore 本机模式下的 ComputedProperty (ndb Datastore) 等效项
- c# - LINQ GroupBy 生成不完整的查询
- reactjs - Reactjs 直接获取并显示数据
- angular - 从 `angular` 中的可观察列表中获取可观察项目
- python - 我们如何在 pandas 数据框中获取所有非数字(NaN 和非数字数据,如字符串)的位置(索引和列标签列表)?
- angular - 带有嵌套对象数组的 Ag Grid
- git - 在 git 中正确使用分支
- android - Kotlin EMV android.nfc.Tag.setConnectedTechnology 错误
- c++ - 链接:致命错误 LNK1181:无法打开输入文件“opencv_world341d.lib”
- laravel - 该模板不在远程服务器的元素应用程序内呈现,但在本地环境中工作