我正在尝试使用 JDK-12 ea 构建一个项目。在尝试执行示例类时:
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
int value = scanner.nextInt();
// After JEP-325
switch (value) {
case 1 ->System.out.println("one");
case 2 ->System.out.println("two");
default ->System.out.println("many");
}
}
IDE 抛出读取的错误
错误:java:错误:无效的源版本:13
相关项目配置屏幕:
模块设置
SDK
编译器设置
IntelliJ IDEA 2018.3.3 (Community Edition) Build #IC-183.5153.38, built on January 9, 2019 JRE: 1.8.0_152-release-1343-b26 x86_64 JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o macOS 10.13.6
尝试将语言级别切换回 12,没有实验性功能,但它以
我记得最近成功使用了实验性功能(不确定确切的 IntelliJ 版本)。除此以外,我还需要配置一些更改吗?
原文由 Naman 发布,翻译遵循 CC BY-SA 4.0 许可协议
正确的方式™
IntelliJ 最早支持 switch 表达式的版本是 2019.1 版本,于 2019 年 3 月 27 日发布。您可以在这里获取: https ://www.jetbrains.com/idea/download。当然,您还需要 JDK 12,并将其设置为您的项目 SDK。
然后您可以将语言级别设置为:
有了它,一切都应该工作。
如果没有,您可能需要检查您是否已经;
手动配置–enable-preview(无intellisense)
将我的评论变成答案。您可以通过以下方式将
--enable-preview
标志添加到 VM:运行-> 编辑配置…
然后从左侧的树形菜单中选择您的主类,并在“VM 选项”框中粘贴
--enable-preview
您可以通过以下方式对编译器执行相同的操作:
文件-> 设置…
然后在 Build, Execution, Deployment -> Compiler -> Java Compiler 下的树形菜单中,您可以将
--enable-preview
放入“Additional command line parameters”框中:请注意,这样做之后智能感知可能仍然无法工作。我仍然在
->
下看到红色波浪线,错误消息为“意外令牌”。但是,当我单击运行按钮时,该类编译并运行得很好。