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

时间:2019-04-28 08:28:48

标签: 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());
};

2 个答案:

答案 0 :(得分:4)

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

运行配置中的“ VM options”字段会影响应用程序的启动方式,而不是应用程序的编译方式,因此添加该选项无效。

答案 1 :(得分:2)

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

语言级别设置

JDK 12 Preview

我正在使用IntelliJ IDEA 2019.1.1(社区版)