Как использовать синтаксис новых версий Java, но компилировать для старых?

В новых версиях Java имеется изрядная доля "синтаксического сахара", который преобразуется на этапе компиляции, например:

// В Java 16 можно сопоставлять образец
// в instanceof выражении...
private void foo(Object inst) {
  if(inst instanceof SomeType someType) {
    // other stuff with someType...
  }
}
// ... что, насколько я понимаю, будет
// "развёрнуто" в следующий код:
private void foo(Object inst) {
  if(inst instanceof SomeType) {
    SomeType someType = (SomeType)inst;
    // other stuff...
  }
}

Как видно, код становится короче, во многих случаях более понятней, да и писать его гораздо быстрее и проще.
Вопрос: можно ли использовать каким-либо образом в Eclipse 2021.6 (4.20) "синтаксический сахар" новых версий языка, но компилировать под старую версию (Java 8)?

P.S.: могу ошибаться, но по моему в VisualStudio имеется похожий функционал, когда в свойствах проекта можно указать версию под которую будет скомпилирован код (вроде target называется).


Ответы (0 шт):