Java 12 intellij 开关表达式不起作用

标签 java intellij-idea switch-statement java-12 switch-expression

我尝试在 IntelliJ 中使用 Java 12,但是当我尝试运行我的应用程序时出现错误

Error:(57, 32) java: switch expressions are a preview feature and are disabled by default.
  (use --enable-preview to enable switch expressions)

我在应用程序配置 VM 选项中添加了 --enable-preview 但此错误仍然出现。我添加了 SDK 路径。有人知道我做错了什么吗?

List<Car> sortedCars = switch (sortType) {
    case COLOR -> cars.stream().sorted(Comparator.comparing(Car::getColor)).collect(Collectors.toList());
    case MILEAGE -> cars.stream().sorted(Comparator.comparing(Car::getMileage)).collect(Collectors.toList());
    case MODEL -> cars.stream().sorted(Comparator.comparing(Car::getModel)).collect(Collectors.toList());
    case PRICE -> cars.stream().sorted(Comparator.comparing(Car::getPrice)).collect(Collectors.toList());
};

最佳答案

默认情况下,语言级别设置为“12 - 无新语言功能”。您需要将其更改为“12 (Preview) - Switch Expression”,您将看到一个弹出窗口以接受预览更改。发布您将能够在 intellij 中运行 switch 表达式。

语言级别设置

JDK 12 Preview

我使用的是 IntelliJ IDEA 2019.1.1(社区版)

关于Java 12 intellij 开关表达式不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55888406/

相关文章:

Idea IntelliJ Community Edition 的 Java 代码覆盖率工具

php - 使用单选按钮在 php mysql 的管理面板中显示已批准或未批准的用户

java - 当html文件保存在本地时,如何构造HtmlPage以使用WebClient进行解析?

Java最大函数递归

java - 如何使用ndk在eclipse中导入和编辑C++代码?

java - 如何在Intellij IDEA 15中用Tomcat8运行 "hello world"JSP页面?

debugging - 使用本地 tomcat 服务器进行 IntelliJ 调试 gradle 构建

c++ - 优化范围检查和返回值

php - 如何简化这个php switch语句?

java - 使用缓冲图像将视频编码为 h264?