Рубрики
Без рубрики

Функции просмотра Java

Краткий и практический обзор функций предварительного просмотра Java.

Автор оригинала: baeldung.

1. Обзор

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

2. Почему предварительные функции

Как это, вероятно, ясно всем к настоящему времени, Java функции релизы поставляются каждые шесть месяцев. Это означает меньше времени ожидания новых java-функций, но в то же время это означает также меньше времени для реагирования на отзывы о новых функциях.

Мы говорим о Java. Он используется для разработки огромного количества производственных систем. В результате даже небольшая неисправность в одной реализации или плохая конструкция функций могут оказаться очень дорогостоящими.

Должен быть способ обеспечить стабильность новых функций. Что еще более важно, они должны соответствовать потребностям общества. Но как?

Благодаря JEP-12 , “обзор языка и VM функции” могут быть включены в поставки. Таким образом, сообщество может проверить новые функции в реальных сценариях – конечно, не в производстве, однако.

Основываясь на отзывах сообщества, функция предварительного просмотра может быть уточнена, возможно, несколько раз в течение нескольких релизов. В конце концов, функция может стать постоянной. Но в некоторых случаях предоставленные обзоры могут привести к полностьюму снятию функции предварительного просмотра.

3. Предварительный просмотр по сравнению с экспериментальными функциями

Java функции предварительного просмотра полностью определены и разработаны функции, которые проходят оценку . Таким образом, они просто еще не достигли окончательного состояния.

Из-за высокого качества различные реализации JDK должны включать все функции предварительного просмотра, запланированные в рамках каждой доставки Java. Тем не менее, Java-релиз по-прежнему не может поддерживать функции предварительного просмотра из предыдущих .

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

Вот что JEP-12 должен сказать о функциях предварительного просмотра:

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

С другой стороны, экспериментальные функции далеки от полной . Их артефакты четко отделены от артефактов JDK.

Экспериментальные функции нестабильны и, как таковые, они налагают риск на язык. Следовательно, различные реализации JDK могут включать различные наборы экспериментальных функций.

4. Использование функций предварительного просмотра

Функции предварительного просмотра отключены по умолчанию . Для того, чтобы они могли, мы должны использовать возможность просмотра аргумент, который позволяет все функции предварительного просмотра одновременно.

Компилятор Java, как и JVM, должен быть той же java-версии которая включает в себя функцию предварительного просмотра, которую мы хотим использовать.

Давайте попробуем составить и запустить фрагмент кода, который использует текстовые блоки, функцию предварительного просмотра в JDK 13:

String query = """
    SELECT 'Hello World'
    FROM DUAL;
    """;
System.out.println(query);

Конечно, мы должны убедиться, что мы используем JDK 13 с нашим любимым IDE. Мы можем, например, скачать OpenJDK релиз 13 и добавьте его в время выполнения Java нашего IDE.

4.1. С затмением

Сначала Eclipse будет отмечать код красным цветом, так как он не будет компилироваться. Сообщение об ошибке позволит нам включить функции предварительного просмотра для использования текстовых блоков.

Нам нужно нажать правой кнопкой мыши на проекте и выбрать Недвижимость из всплывающего меню. Далее, мы идем к Java Компилятор . Теперь мы можем выбрать функции предварительного просмотра как для этого конкретного проекта, так и для всего рабочего пространства.

Далее, мы должны остановить Использование параметров соответствия по умолчанию , и только тогда мы можем проверить Включить функции предварительного просмотра для Java 13 :

4.2. С IntelliJ IDEA

Как и следовало ожидать, код не будет компилироваться в IntelliJ по умолчанию, даже с Java 13, и мы получим сообщение об ошибке, аналогичное тому, которое мы видели в Eclipse.

Мы можем включить функции предварительного просмотра Проектная структура в Файл меню. Из Проект , мы должны выбрать 13 (Предварительный просмотр) как уровень языка проекта:

Это должно сделать это. Однако, если ошибка все еще сохраняется, мы должны вручную добавить аргументы компилятора, чтобы включить функции предварительного просмотра. Предполагая, что это проект Maven, компилятор плагин в пом.xml должны содержать:


    
        
            org.apache.maven.plugins
            maven-compiler-plugin
            
                13
                13
                
                    --enable-preview
                
            
        
    

При необходимости мы можем включить функции предварительного просмотра для других плагинов Maven в соответствующих конфигурациях аналогичным образом.

4.3. От командной линии

Во время компиляции Явак команде нужны два аргумента – возможность просмотра и релиз :

javac --release 13 --enable-preview ClassUsingTextBlocks.java

Напомним, что релиз JDK N не поддерживает функции предварительного просмотра релиза N-1 или любые предыдущие релизы. Таким образом, мы получим ошибку, если попытаемся выполнить предыдущую команду с JDK 14 .

Короче говоря, релиз аргумент должен установить N к версии релиза JDK компилятора (и JVM), используемой для включения функций предварительного просмотра.

релиз Аргумент просто дополнительная охрана для обеспечения кода с использованием функций предварительного просмотра не будет охотно использоваться в производстве.

Во время выполнения Ява команда требует только возможность просмотра аргумент:

java --enable-preview ClassUsingTextBlocks

Однако будет запущен только код с использованием функций предварительного просмотра этого конкретного релиза JDK.

5. Заключение

В этой статье мы ввели функции предварительного просмотра на Java, почему они у нас есть и чем они отличаются от экспериментальных функций.

Затем, используя функцию предварительного просмотра текстовых блоков в JDK 13, мы объяснили шаг за шагом, как использовать функции предварительного просмотра из Eclipse, IntelliJ, Maven и командной строки.