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

В IDE NetBeans реализована поддержка для новых языковых функций Java 7, таких как оператор diamond, оператор switch для перехода по переменным string, оператор multicatch и т.д. При использовании этих конструкций в коде, среда IDE распознает их, предлагает корректные классы при завершении кода, правильно выделяет ошибки и позволяет автоматически исправлять синтаксис. Таким образом, IDE NetBeans позволяет писать код, соответствующий спецификации языка Java, Java SE 7 Edition.

В этом практическом руководстве вы узнаете, как в IDE обрабатываются языковые конструкции Java 7.

Содержание

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

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

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

Проверка регистрации JDK 7 в IDE NetBeans

Проверка регистрации JDK 7 в IDE NetBeans:

  1. В среде IDE выберите "Сервис" > "Платформы Java".
  2. Проверьте, что в списке 'Платформы' в диалоговом окне 'Диспетчер платформ Java' выбрана версия JDK 1.7.

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

  3. Выберите "Close" (Закрыть).

Проверка конфигурации проекта

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

  1. Создайте проект Java (выберите 'Файл > Создать проект', затем в списке 'Тип проекта' выберите 'Приложение Java').
  2. Нажмите кнопку "Далее".
  3. В качестве имени проекта введите SwitchTest и укажите его местоположение.
  4. Нажмите 'Готово'.
  5. В окне 'Проекты' щелкните правой кнопкой мыши узел проекта SwitchTest и выберите 'Свойства > Библиотеки'. Убедитесь, что в списке 'Платформы Java' на этой вкладке выбрана версия JDK 1.7.

    Платформа JDK 7 выбрана в качестве целевого формата

  6. В окне 'Свойства проекта' перейдите на вкладку 'Исходный код'. В списке 'Исходный/двоичный формат' должна быть выбрана версия JDK 7.

    Платформа JDK 7 выбрана в качестве исходного формата

  7. Нажмите кнопку "ОК" для закрытия диалогового окна "Свойства проекта". Ваш проект настроен для работы с компонентами языка Java 7.

Использование новых языковых конструкций JDK 7: оператор переключения

JDK 7 содержит множество новых функций и расширений в различных аспектах, в том числе при интернационализации, вводе-выводе, работе с сетью, безопасности и т.д. Для ознакомления с поддержкой JDK 7 в редакторе Java среды IDE проще всего продемонстрировать некоторые изменения, введенные в проекте Coin.

Одним из таких изменений является использование типа String в операторе switch. В предыдущих версиях Java аргументами оператора switch могли быть только такие простейшие типы данных как byte, short, char, int и enum. Начиная с JDK 7, аргументы типа String также можно использовать в выражении оператора switch.

  1. Откройте файл SwitchTest.java и вставьте следующий код. В этом примере отображаются коды RGB для различных цветов.
    JDK 7 позволяет переменной color иметь тип String.
    package switchtest;
    
        public class SwitchTest {
    
        public static void main(String[] args) {
    
            String color = "red";
            String colorRGB;
            switch (color.toLowerCase()) {
                case "black": colorRGB = "000000"; break;
                case "red": colorRGB = "ff0000"; break;
                case "green": colorRGB = "008000"; break;
                case "blue": colorRGB = "0000ff"; break;
                default: colorRGB = "Invalid color"; break;
            }
            System.out.println(colorRGB);
            }
        }
    

    Если вставленный код некорректно форматируется в редакторе, нажмите сочетание клавиш ALT+SHIFT+F для выполнения повторного форматирования.

  2. В окне 'Проекты' щелкните правой кнопкой мыши узел проекта и выберите 'Запустить файл'. На экране отобразится вывод приложения, который представляет собой код RGB для красного цвета.
    Таким образом, сборка выполнена успешно, а приложение успешно работает при указании целевой платформы и исходного формата JDK 7.

    Выходные данные запуска проекта

  3. Вернемся к JDK 6 и проверим компилирование приложения с помощью компилятора JDK 6.
    В окне 'Проекты' щелкните правой кнопкой мыши узел проекта и выберите 'Свойства'. В категории 'Источники' в списке 'Исходный/двоичный формат' выберите JDK 6 и нажмите ОК.
    Сразу видно, что синтаксический анализатор JDK6 не распознает синтаксис. Компиляция завершается с ошибкой из-за несовместимого типа переменной.

    Ошибка

  4. Теперь перепишите код, используя оператор if-then-else вместо оператора switch:
    package switchtest;
    
        public class SwitchTest {
    
        public static void main(String[] args) {
    
            String color = "red";
            String colorRGB;
            if (color.equals("black")) {
                colorRGB = "000000";
            } else if (color.equals("red")) {
                colorRGB = "ff0000";
            } else if (color.equals("green")) {
                colorRGB = "008000";
            } else if (color.equals("blue")) { 
                colorRGB = "0000ff";
            } else {
                colorRGB = "Invalid color";
            }
            System.out.println(colorRGB);
            }
        }
    
    Если в качестве исходного/двоичного формата выбрана версия JDK 7, IDE распознает такие случаи и предлагает преобразовать их в switch, как показано на рисунке.

    Подсказка для преобразования в switch

    Щелкните подсказку, и конструкция if-then-else будет автоматически преобразована в конструкцию switch, которая использовалась ранее.

Поддержка JDK 7: дополнительные примеры

Чтобы проиллюстрировать возможности распознавания и автоматического исправления кода в редакторе Java среды IDE для обеспечения совместимости со спецификациями языка JDK 7, воспользуемся фрагментом кода, который не имеет смысла, но содержит все основные улучшения.

При анализе этого фрагмента кода и применении подсказок редактора будут продемонстрированы следующие возможности.

  • Автоматический вывод типов, при котором компилятор Java определяет тип общего экземпляра без необходимости его явного указания. Так называемый оператор "бубна" позволяет отметить случаи вывода типа.
  • Улучшенная обработка исключений или мультизахват, при котором один блок catch может использоваться для нескольких типов исключений.
  • Новый синтаксис операторов закрытия ресурсов, используемый функцией автоматического управления ресурсами.
  1. Замените существующий код приложения в том же файле SwitchTest.java следующим кодом:
    package switchtest;
    
    
    import java.io.FileInputStream;
    import java.lang.reflect.Method;
    import java.io.IOException;
    import java.lang.reflect.InvocationTargetException;
    import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    
    public class SwitchTest {
    
        public void test() throws IOException {
            List<String> list = new ArrayList<String>();
            HashMap<String, Integer> map = new HashMap<String, Integer>();
            HashMap<String, Integer> map2 = new HashMap<String, Integer>();
            String a = "ehlo";
    
            try {
                Method m = Object.class.getMethod("toString");
                m.invoke(this);
            } catch(NoSuchMethodException e) {
                e.printStackTrace();
            } catch(InvocationTargetException e) {
                e.printStackTrace();
            } catch(IllegalAccessException e) {
                e.printStackTrace();
            }
    
            FileInputStream in = null;
            try {
                in = new FileInputStream("foo.txt");
    
                int k;
                while ((k = in.read()) != -1) {
                    System.out.write(k);
                }
            } finally {
                if (in != null) {
                    in.close();
                }
            }
        }
    }
     
  2. Обратите внимание, что в среде IDE отображаются подсказки по оптимизации кода в соответствии со спецификациями JDK 7. Щелкните подсказки и выберите предложенные действия.
  3. По принятии всех предложений будет создан код, совместимый с JDK 7. Этот код будет выглядеть так же, как код, показанный ниже.

    Фрагмент преобразованного кода


См. также

Дополнительные сведения о JDK 7 и IDE NetBeans см.:

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

get support for the NetBeans

Support


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