Выражения переключателя intellij Java 12 не работают

Я пытаюсь использовать Java 12 в IntelliJ, но при попытке запустить мое приложение возникает ошибка

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 ответа

По умолчанию уровень языка установлен на " 12 - Нет нового языка ". Вам нужно изменить его на " 12 (Preview) - Switch Expression ", и вы получите всплывающее окно, чтобы принять изменения Preview. Пост, который вы сможете запускать в выражениях switch switch.

Настройки уровня языка

Я использую IntelliJ IDEA 2019.1.1 (Community Edition)

Убедитесь, что параметр "Уровень языка проекта" в диалоговом окне "Структура проекта" для вашего проекта установлен на Java 12. В этом случае IntelliJ IDEA автоматически добавит параметр --enable-preview.

Поле параметров виртуальной машины в конфигурации запуска влияет на способ запуска приложения, а не на его компиляцию, поэтому добавление этого параметра не имеет никакого эффекта.

Другие вопросы по тегам