Ниже перечислены наиболее значимые изменения средств разработки на Java, вошедшие в выпуск 3.2 Eclipse, а именно:
Ознакомьтесь также с разделом Платформа Eclipse - новое в 3.2, где описаны нововведения платформы.
Рефакторинг Java |
|
Рефакторинг Представить косвенный вызов |
Новый рефакторинг Представить косвенный вызов позволяет перенаправить все вызовы метода другому методу. Новый метод будет вызывать исходный метод. Реализацию по умолчанию нового метода можно заменить любой другой по своему выбору. Такое перенаправление может быть полезно, если в метод требуется добавить новые функции, но:
Используйте перенаправление для исправления ошибок или как быстрый способ добавить код до или после вызова метода. Для того чтобы выполнить рефакторинг Представить косвенный вызов, выберите метод, вызовите Рефакторинг > Представить косвенный вызов... и укажите имя и класс, объявляющий новый метод. Метод будет добавлен в выбранный объявляющий класс. Все ссылки будут обновлены с вызовом нового метода. |
Рефакторинг Извлечь базовый класс |
Новый рефакторинг Извлечь базовый класс позволяет извлечь общий базовый класс из ряда дочерних типов. Выбранные дочерние типы становятся прямыми производными классами извлеченного базового класса. Кроме того, операция Извлечь базовый класс позволяет использовать извлеченный базовый класс в коде там, где это возможно. В следующем примере На следующем рисунке показана иерархия типов после извлечения Этот рефакторинг вызывается в меню Рефакторинг > Извлечь базовый класс. |
Мастер очистки |
Мастер очистки может вызываться с любым числом исходных файлов Java, пакетов или для всего проекта Java. Он выполняет следующие функции:
Далее приведены примеры его операций:
Для того чтобы код на Java 1.4 был совместим с 5.0, используйте мастер очистки, чтобы:
Выберите проект, пакет или файл и вызовите мастер в меню Исходный текст > Очистить.... |
Хронология рефакторинга |
Операции рефакторинга, выполняемые JDT, записываются в are now tracked in a хронологию рефакторинга. Система рефакторинга сохраняет подробную информацию об операциях рефакторинга в рабочей области.
|
Работа со сценариями рефакторинга |
Операции рефакторинга в локальной рабочей области можно экспортировать в сценарий рефакторинга и выполнить в любой рабочей области. Сценарии рефакторинга позволяют автоматизировать задачи исправления измененных API или применения сложных исправлений. Создайте сценарий рефакторинга из хронологии рефакторинга, вызвав Рефакторинг > Создать сценарий.... Для того чтобы применить сценарий рефакторинга в другой рабочей области, используйте Рефакторинг > Применить сценарий... Новая точка расширения позволяет включать поддержку сценариев рефакторинга при написании модулей.
Дополнительная информация приведена в описании точки расширения |
Экспорт файла JAR вместе с операциями рефакторинга |
При экспорте файла JAR из рабочей области мастер экспорта JAR предлагает включить информацию о рефакторинге в файл JAR. После этого клиенты смогут перенести старую версию файла JAR с помощью рефакторинга Рефакторинг> Перенести файл JAR.... Кроме того, если выбран файл JAR, то можно использовать также Путь компоновки > Перенести файл JAR.... Этот рефакторинг автоматически обновляет код, применяющий старую версию файла JAR. |
Рефакторинг с учетом API |
Часть операций рефакторинга были расширены для поддержки совместимости с API. При этом исходный элемент становится делегатом элемента, для которого был выполнен рефакторинг.
Генерация делегата для совместимости с API включается опцией Сохранить исходный метод как делегат переименованного в окне рефакторинга. |
Переименование типов элементов с похожими именами |
Рефакторинг Переименовать тип теперь работает с переменными и методами, имена которых схожи с именем изменяемого типа. Эта функция позволяет синхронизировать имена методов и переменных с именами типов. Для вызова рефакторинга используйте меню Рефакторинг > Переименовать... |
Рефакторинг Переименовать пакет работает с вложенными пакетами |
При необходимости при рефакторинге Переименовать пакет будут также переименованы вложенные пакеты. В этом примере Для вызова рефакторинга выберите пакет и используйте меню Рефакторинг > Переименовать... |
Фильтрация предварительного просмотра рефакторинга |
Предварительный просмотр рефакторинга теперь может выполняться с фильтрами. Это особенно полезно при обновлении совпадений в комментариях и строках, когда переименование ведется для элементов Java. На рисунке показано окно переименования класса Можно также отфильтровать изменения, связанные с областью видимости элементов Java. |
Редактор Java
|
|
Настраиваемый помощник по содержимому |
Повторное нажатие Ctrl+Space в помощнике по содержимому позволяет предлагать варианты дополнения по циклу. Отдельным категориям дополнений можно назначить разные комбинации клавиш, и на странице
Точка расширения |
Поддержка смешанного регистра в дополнениях кода |
Дополнение кода поддерживает смешанный регистр в шаблонах.
Например, в качестве дополнения для NPE будет предложено NullPointerException.
Эта поддержка может быть выключена опцией Показать совпадения со смешанным регистром на странице
|
Быстрое меню для блоков кода |
Быстрое меню Заключить в позволяет работать с блоками кода. Это меню можно расширить пользовательскими шаблонами. В шаблонах указываются переменные. Для вызова меню используйте Исходный код > Заключить в или нажмите Alt+Shift+Z. На странице Java > Редактор >
Шаблоны можно настроить шаблоны. Во всех шаблонах участвует переменная |
Новые быстрые исправления |
Далее перечислены некоторые новые быстрые исправления:
|
Поддержка категорий |
Категории определяются в комментариях Javadoc для типов, методов и полей с помощью тега Категории показываются в панелях Схема и Элементы и в быстрой схеме. Меню Вид позволяет выбрать отображаемые категории. |
Все элементы можно свернуть |
Если включено сворачивание, то поля, инициализаторы и комментарии можно свернуть, как методы. Предусмотрены команды сворачивания и разворачивания всех комментариев, всех элементов и пр. Эти команды входят в контекстное меню Свернуть редактора Java на вертикальной линейке. |
Линейка и схема для внешних файлов Java |
В редакторе Java есть вертикальная линейка, а панели Схема и Быстрая схема могут отображать схему внешних файлов Java и файлов Java из хранилищ. |
Компилятор Java
|
|
Совместимость с Java SE 6.0 |
Реализована полная совместимость с Java SE 6.0.
Например, атрибуты |
Анализ пустых ссылок |
Компилятор Java может выполнять простой анализ пустых ссылок для локальных переменных. Эта диагностика включается на странице
Учтите, что этот анализ выполняется только в очевидных случаях. Предупреждение выдается для явных нарушений, но не для всех потенциальных случаев. В режиме совместимости с 5.0 предупреждения о пустых ссылках выключаются параметром |
Улучшенное исправление синтаксических ошибок |
Внутренний синтаксический анализатор Java сделан более устойчивым к синтаксическим ошибкам. В Eclipse 3.1 синтаксическая ошибка приводила к тому, что последующие ошибки не показывались. Теперь анализатор продолжает обработку файла после обнаружения операторов с ошибками. В следующем примере показано, как обнаруживается неверная ссылка на метод Это позволяет выполнять рефакторинг с одним файлом, где есть синтаксические ошибки. Например, можно переименовать или извлечь локальную переменную из метода, который ее не полностью реализован. |
Обработка настраиваемых ошибок как не фатальных |
Опция Считать настраиваемые ошибки фатальными на странице параметров
Если эта опция выключена, то скомпилированный код можно выполнить, несмотря на наличие в нем ошибок. |
Обнаружение лишних тегов $NON-NLS$ |
Теперь можно найти лишние теги Эти сообщения можно выключить так же, как и сообщения об обнаружении неэкспортированных строк.
Для этого на странице
Для того чтобы удалить лишние теги, используйте быстрое исправление (Ctrl+1), или Ctrl+1, Ctrl+Enter. |
Обнаружение использования примитивных типов |
Теперь можно обнаружить использование примитивных типов. Примитивный тип - это ссылка на параметризуемый тип без аргумента типа, например, Эта диагностика включается независимо от операций с непроверяемым типом на странице
Это предупреждение не показывается при добавлении Для исправления этой ошибки есть также быстрое исправление. |
Обнаружение присвоения параметрам методов |
Присвоение параметрам метода возможно по правилам языка, но не рекомендуется. Для того чтобы обнаруживать такие присвоения, на странице
|
Обнаружение лишних меток |
Компилятор Java может находить лишние метки операторов. Эта диагностика включается на странице
|
Обнаружение прохода сквозь ветви switch |
Компилятор Java может находить возможные проходы сквозь ветви case. Пустые метки case разрешены. Эта диагностика включается на странице
Предусмотрено быстрое исправление, добавляющее оператор |
Улучшение быстродействия работы с большими файлами |
Предельный размер внутреннего кэша Java теперь зависит от максимального размера кучи (аргумент -Xmx для большинства JVM), передаваемого виртуальной машине Java в Eclipse. Увеличение размера кучи положительно сказывается на производительности при работе с большими файлами .jar в пути к классам. |
Повторное создание измененных файлов .class |
Компоновщик Java может повторно создавать измененные или удаленные файлы .class в выходной папке по исходным файлам. Это настраивается на странице
|
Панель Javadoc и всплывающие подсказки из Javadoc |
Панель Javadoc и всплывающие подсказки из Javadoc могут получать информацию из вложенного Javadoc библиотек, для которых нет исходного кода. |
Инструментарий JUnit |
|
Поддержка JUnit 4 |
Поддержка JUnit теперь включает выполнение тестов JUnit 4. Дополнительная информация приведена на сайте www.junit.org.
|
Хронология JUnit |
Панель JUnit поддерживает параллельные тесты. Хронология позволяет переключаться между активными и недавними тестами. Тесты можно повторно запустить из хронологии, не останавливая уже выполняемые тесты. Это работает и с JUnit 3, и с JUnit 4. |
Отладчик Java |
|
Среды выполнения |
Среда выполнения описывает рабочие функции, например, J2SE-1.4. Указав JRE для запуска, отладки и компоновки, вы настраиваете среду выполнения.
На странице
Путь компоновки или конфигурация запуска со ссылкой на среду выполнения обеспечивают большую гибкость, чем явное указание JRE, поскольку среда выполнения JRE может быть получена независимо от ее имени. Указать среду выполнения для запуска и компоновки можно на вкладке JRE или в мастере Изменить библиотеку. |
Переменная запуска в системных свойствах |
Новая переменная запуска позволяет динамически указать аргументы для программ на Java и VM из среды выполнения Eclipse. Эта переменная задает имя системного свойства, которое определяется при запуске. Например, системное свойство java.home указывается как ${system_property:java.home}. |
Обработка значений массивов |
Помощник по содержимому и вычисления могут работать с массивами Java.
Используйте |
Группы нитей Java |
Функция Показать группы нитей позволяет скрыть или показать группы нитей в панели Отладка. |
Экспортируемые записи динамического пути к классам |
В динамический путь к классам можно включать только экспортированные записи из пути компоновки. По умолчанию динамический путь к классам включает все записи (включая неэкспортированные). На вкладке Путь к классам выберите запись по умолчанию и нажмите Изменить..., чтобы настроить параметры. |
Приостановить нить или Приостановить VM |
На странице
|
Разное |
|
Индикатор типов Java |
Индикатор типов Java можно включить на странице параметров
|
Поиск неисправных экспортированных строк |
Теперь можно найти неисправные экспортированные строки. При этом будут найдены отсутствующие, лишние и повторяющиеся ключи. Для поиска выберите файл свойства, пакет или весь проект и выберите Исходный код > Найти неисправные экспортируемые строки |
Улучшенный механизм экспорта строк Eclipse |
Механизм экспорта строк в Eclipse теперь поддерживает функции традиционного способа экспорта строк. При наведении мыши на ключ экспортированной строки в редакторе Java показывается подсказка для его значения. С помощью Ctrl+щелчок можно перейти сразу к записи в соответствующем файле свойств. В редакторе файла свойств Ctrl+щелчок позволяет найти место, где ключ применяется в коде. |
Создание типа из фрагмента кода |
Фрагмент кода с типом Java можно вставить в пакет или исходную папку, чтобы создать новую единицу компиляции.
Например, выберите и скопируйте следующий фрагмент:
package pack; public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World"); } }затем выберите исходную папку в панели Структура пакетов - Ctrl+V (Правка > Вставить). При этом автоматически будет создан пакет 'pack' и файл 'HelloWorld.java' с этим текстом. |
Создание hashCode() и equals() |
Новое действие позволяет создать методы Для того чтобы вызвать действие, выберите тип и в меню выберите Исходный код > Сгенерировать hashCode() и equals()... |
Форматирование кода в командной строке |
Форматирование кода можно выполнить, не запуская пользовательский интерфейс Eclipse, в неинтерактивной программе форматирования. Программа форматирования кода в командной строке работает как обычное приложение Eclipse. Следующая команда позволит отформатировать файлы в папке src с параметрами, заданными в файле config.prefs: За дополнительной информацией обратитесь к разделу Работа с приложением форматирования. |
Поддержка Java-подобных расширений |
Поддерживаются файлы с кодом Java, расширение которых отличается от .java.
Расширение типов файлов Java можно добавить на странице
|