Как использовать синтаксис новых версий 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 называется).