Выражения переключателя intellij Java 12 не работают - PullRequest
4 голосов
/ 28 апреля 2019

Я пытаюсь использовать 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 ]

4 голосов
/ 28 апреля 2019

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

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

3 голосов
/ 04 мая 2019

По умолчанию уровень языка установлен на « 12 - нет новой функции языка ».Вам нужно изменить его на « 12 (Preview) - Switch Expression », и вы получите всплывающее окно, чтобы принять изменения предварительного просмотра.Публикация, в которой вы сможете запускать выражения переключения в intellij.

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

JDK 12 Preview

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

...