Код: Выделить всё
openjdk 17.0.2 2022-01-18
OpenJDK Runtime Environment Temurin-17.0.2+8 (build 17.0.2+8)
OpenJDK 64-Bit Server VM Temurin-17.0.2+8 (build 17.0.2+8, mixed mode, sharing)
< /code>
Я пытаюсь использовать новые функции переключения Java 17, поэтому я попробовал это методом: < /p>
return switch(testEnum) {
case foo -> newFoo();
case bar -> newBar();
}
< /code>
Это работает нормально. Но тогда я попробовал это (потому что значение может быть null
return switch(testEnum) {
case foo -> newFoo();
case bar -> newBar();
case null -> newDefault();
}
< /code>
Eclipse подчеркивает Null < /code> красным и говорит: < /p>
Сопоставление шаблона в коммутаторе является предварительным и отключенным по умолчанию. Использовать-eNable-preview для включения < /p>
< /blockquote>
Компиляция через Maven. Производит: < /p>
[ERROR] /project/src/main/java/com/example/FooBar.java:[432,38] null in switch cases is a preview feature and is disabled by default.
[ERROR] (use --enable-preview to enable null in switch cases)
< /code>
My Maven Project имеет: < /p>
17
< /code>
Я знаю, что настройка выпуска компилятора не игнорируется; В противном случае это было бы дефолт на Java 8 (согласно моим родителям) и вообще не позволяет сопоставлять шаблоны. Что я делаю не так?
Подробнее здесь: https://stackoverflow.com/questions/725 ... n-matching