Java 12 intellij switch 表达式不起作用

Mat*_*zak 4 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)
Run Code Online (Sandbox Code Playgroud)

我在应用程序配置 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());
};
Run Code Online (Sandbox Code Playgroud)

Sac*_*hin 5

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

语言级别设置

JDK 12 预览版

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


yol*_*ole 4

请确保项目的“项目结构”对话框中的“项目语言级别”设置设置为 Java 12。在这种情况下,IntelliJ IDEA 将自动添加 --enable-preview 选项。

运行配置中的 VM 选项字段会影响应用程序的启动方式,而不是编译方式,因此添加该选项没有任何效果。