Обзор поддержки JDK 8 в IDE NetBeans

IDE NetBeans поддерживает функции JDK 8, такие как лямбда-выражения, повторные аннотации, компактные профили и т.д. Когда эти конструкции используются в коде, IDE распознает их, правильно выделяет ошибки и позволяет автоматически исправлять синтаксис. Таким образом, IDE NetBeans позволяет писать код, соответствующий спецификации Java SE 8 Release Contents Early Draft Review.

Это практическое руководство научит вас работать с JDK 8 в IDE NetBeans и использовать поддержку таких функций Java SE 8, как лямбда-выражения, компактные профили и повторные аннотации.

Содержание

Содержимое на этой странице применимо к IDE NetBeans 7.4

Для работы с этим учебным курсом требуются программное обеспечение и материалы, перечисленные в таблице ниже.

Программное обеспечение или ресурс Требуемая версия
IDE NetBeans версия 7.4
Комплект для разработчика на языке Java (JDK) версия 8

Включение поддержки JDK 8 в IDE NetBeans

После загрузки и установки JDK 8 на компьютере необходимо зарегистрировать эту платформу в IDE:

  1. В среде IDE выберите "Сервис" > "Платформы Java".
  2. В диалоговом окне 'Диспетчер платформ Java' нажмите 'Добавить платформу'.
  3. В диалоговом окне 'Добавление платформы Java' выберите Java Standard Edition и нажмите 'Далее'.
  4. Укажите каталог, в котором находится JDK, и нажмите 'Далее'.

    Выбрана платформа JDK 8

  5. Проверьте правильность местоположений по умолчанию для zip-архива Platform Sources и документации API. Для закрытия диалога добавления платформы Java нажмите кнопку "Готово".
    Платформа JDK 8 зарегистрирована в IDE.

    Зарегистрированная платформа Java

  6. Убедитесь в том, что в списке "Платформы" выбран пункт "JDK 1.8", и нажмите кнопку "Закрыть".

Настройка проекта для работы с JDK 8

После регистрации платформы JDK 8 в IDE необходимо настроить проект для работы с JDK 8 и выполнения компиляции, запуска и отладки.

Создайте новый проект Java SE на основе примера игры Anagram, поставляемого в комплекте с IDE NetBeans.

  1. В меню IDE выберите Файл > Создать проект.
  2. В мастере создания проектов разверните категорию 'Образцы' и выберите Java.
  3. В списке 'Проекты' выберите 'Игра Anagram'. Затем нажмите кнопку "Дальше".
  4. На панели 'Имя и местоположение' оставьте без изменения данные в полях 'Имя проекта' и 'Местоположение проекта'.
  5. Нажмите 'Готово'.
    IDE создает проект Java SE и открывает его в окне 'Проекты'.

Настройка проекта для работы с JDK 8:

  1. В окне 'Проекты' щелкните правой кнопкой мыши проект AnagramGame и выберите 'Свойства' в контекстном меню.
  2. В диалоговом окне 'Свойства проекта' выберите категорию 'Библиотеки' и выберите JDK 1.8 в качестве платформы Java.

    JDK 8 выбрана в качестве платформы Java

  3. Выберите категорию 'Источники', затем выберите JDK 8 в списке 'Исходный/двоичный формат'.

    Выбор JDK 8 в качестве исходного/двоичного формата

  4. Нажмите OK для сохранения изменений.
    Теперь проект настроен на распознавание новых функций языка JDK 8.

Использование поддержки компактных профилей

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

Имеющиеся на данный момент профили называются compact1, compact2 и compact3. Каждый профиль задает определенный набор пакетов Java API и включает в себя все API-интерфейсы более мелких профилей: compact1 является подклассом для compact2, который в свою очередь является подклассом для compact3, который является подклассом для Полного JRE. В таблице перечислены пакеты, включенные в состав каждого из профилей.

Compact1 Compact2 Compact3 Полный JRE
  • java.lang
  • java.io
  • java.nio
  • java.text
  • java.math
  • java.net
  • javax.net
  • java.util
  • java.util.logging
  • java.security
  • javax.crypto
  • javax.security
compact1 плюс следующее:
  • java.sql
  • javax.sql
  • javax.xml
  • org.w3c.dom
  • org.xml.sax
  • java.rmi
  • javax.rmi
  • javax.transaction
compact2 плюс следующее:
  • java.lang.management
  • javax.management
  • javax.naming
  • javax.sql.rowset
  • javax.security.auth.kerberos
  • org.ietf.jgss
  • javax.script
  • javax.xml.crypto
  • java.util.prefs
  • javax.security.sasl
  • javax.security.acl
  • java.lang.instrument
  • javax.annotation.processing
  • javax.lang.model
  • javax.lang.model.element
  • javax.lang.model.type
  • javax.lang.model.util
  • javax.tools
compact3 плюс следующее:
  • corba
  • awt
  • swing

IDE позволяет переключаться между этими профилями и профилем 'Полный JRE' по мере необходимости.

Выбор профиля для проекта Java SE:

  1. Щелкните проект правой кнопкой мыши и выберите 'Свойства' в контекстном меню.
  2. В диалоговом окне 'Свойства проекта' выберите категорию 'Источники'.
  3. Выберите из списка 'Профиль' поддерживаемый профиль JDK 8 для приложения.

    Список профилей

  4. Нажмите ОК.

IDE проверяет, принадлежат ли классы, используемые в проекте, определенному профилю. Чтобы рассмотреть это на примере, выберите Compact1 в качестве профиля проекта AnagramGame и нажмите ОК.
В IDE отображаются сообщения об ошибках, указывающие на то, что проект AnagramGame несовместим с профилем compact1.

Профиль

Вы можете вернуться и изменить профиль проекта AnagramGame на 'Полный JRE', поддерживаемый приложением Anagrams.

Использование поддержки лямбда-выражений

Лямбда-выражения являются более компактным способом представления механизмов анонимных внутренних классов и делают эти классы менее массивными.

В общем случае синтаксис лямбда-выражения состоит из набора параметров, маркера стрелки и тела функции (одиночного выражения или блока выражений):

(int a, int b) -> a * a + b * b;

IDE NetBeans обнаруживает конструкции, которые можно преобразовать в лямбда-выражения, и в редакторе отображаются соответствующие подсказки.

Например, в проекте AnagramGame подобная конструкция есть в файле Anagrams.java, показанном на рисунке.

Лямбда при нажатии

Если нажать на значок подсказки или нажать Alt-Enter, в IDE отображается подсказка 'Использование лямбда', в которой предлагается несколько вариантов:

Лямбда при нажатии

Если выбрать подсказку 'Использование лямбда', IDE преобразует анонимный внутренний класс в лямбда-выражение.

Лямбда после преобразования

Если выбрать параметр 'Начать проверку в...', в IDE отображается диалоговое окно 'Проверка', в котором можно выполнить одну проверку 'Преобразование в лямбда' для выбранного файла.

Примечание. Дополнительные сведения о запуске операции 'Проверка' в IDE см. в разделе Использование подсказок при анализе и рефакторинге исходного кода в документе Разработка приложений в IDE NetBeans.

Выполнить проверку

При нажатии на кнопку 'Проверка' IDE находит в файле все конструкции, которые можно преобразовать в лямбда-выражения, и отображает их в окне 'Инспектор'.

Проверка лямбда

Если выбрать параметр 'Начать проверку и преобразование...', в IDE отображается диалоговое окно 'Проверка и преобразование', в котором можно выполнить одну проверку 'Преобразование в лямбда' (или выбранную конфигурацию) для указанного кода и при необходимости оптимизировать его.

Примечание. Дополнительные сведения о запуске операции 'Проверка и преобразование' см. в разделе Использование подсказок при анализе и рефакторинге исходного кода в документе Разработка приложений в IDE NetBeans.

Рефакторинг лямбда

Использование поддержки повторных аннотаций

Java SE 8 предоставляет функцию повторных аннотаций, которая позволяет применять однотипные аннотации к отдельным элементам программы, как показано в приведенном ниже примере кода:

@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2seproject")
@ProjectServiceProvider(service=Foo.class,"org-nebeans-modules-j2eeproject")
public class MyService extends Foo {}
 

Поддержка повторных аннотаций в IDE NetBeans позволяет писать код с одними и теми же аннотациями при условии, что объявлены соответствующие типы аннотаций (повторные или содержащие):

  • Повторная аннотация должна иметь обозначение @Repeatable (), в противном случае при компиляции произойдет ошибка
  • Содержащая аннотация должна включать в себя элемент value типа 'массив'; тип компонента типа 'массив' должен быть типом повторной аннотации

См. также

Дополнительные сведения о платформе JDK 8:

Дополнительные сведения о разработке приложений в IDE NetBeans см. следующие ресурсы:

get support for the NetBeans

Support


By use of this website, you agree to the NetBeans Policies and Terms of Use. © 2018, Oracle Corporation and/or its affiliates. Sponsored by Oracle logo