С 2017 года java выходит раз в полгода. В прошлом посте обсудили релизы, а в этом обсудим жизненный цикл нововведений.
Фичи в java проходит две стадии:
1️⃣ Предварительная — по умолчанию не работает. Полностью готова, но открыта для обратной связи. Методы и реализация неокончательные.
2️⃣ Финальная — доступна по умолчанию.
Терминология в JDK посложнее, названия стадий зависят от типа фичи:
🔸Новый синтаксис, класс:
Preview / Standard
🔸JVM функционал:
Experimental / Production
🔸Утилиты, новое API:
Incubator / Standard
В списке фич новой версии «предварительный» статус указывают в скобках:
360: Sealed Classes (Preview)Чем ближе выход java, тем больше статей о новых фичах — records, text blocks, sealed classes и т. д. Многие разработчики грустят:
383: Foreign-Memory Access API (Second Incubator)
384: Records (Second Preview)
— Скоро java 15 выйдет, а в проекте 8 версия. Технологии идут вперёд, а я трачу лучшие годы на легаси((
У всех крупных проектов такая ситуация.
Ближайшая LTS версия java выйдет в сентябре 2021. Большинство фич, о которых пишут статьи, сейчас в превью стадии. Они не доступны по умолчанию и войдут в обиход большинства проектов не раньше конца 2021 года.
Но можно попробовать уже сейчас:
1️⃣ Intellij IDEA
File → Project Structure → Project → Project Language Level
В списке выбрать версию с пометкой (Preview)
2️⃣ Maven
В плагины, которые работают с кодом (maven-compiler-plugin, maven-surefire-plugin) добавить секцию
<configuration>3️⃣ При компиляции через консоль добавить 2 аргумента
<argLine>--enable-preview</argLine>
</configuration>
javac --release 13 --enable-preview
Обратная связь по превью фичам собирается в Java Bug Database.