В Eclipse 3.1 реализована полная поддержка новых возможностей J2SE 5.0 ("Tiger"). Важно отметить, что эта поддержка может быть совершенно прозрачна - все, с чем вы привыкли работать в J2SE 1.4, включая редактирование, компиляцию, отладку, быстрые исправления, рефакторинг, действия с кодом, поиск и прочее - будет точно так же работать с новыми типами и конструкциями J2SE 5.0. В этом документе мы опишем дополнительные полезные возможности, которые Eclipse предоставляет при работе с J2SE 5.0.
Для того чтобы разрабатывать исходный код с J2SE 5.0, необходима среда выполнения Java? поддерживающая J2SE 5.0. Если первый запуск Eclipse выполнялся с JRE J2SE 5.0, то эта среда будет применяться по умолчанию. В противном случае на странице Установленные JRE (Окно > Параметры > Java > Установленные JRE) эту среду следует подключить к Eclipse.
В этом документе кратко описаны некоторые новые возможности языка в J2SE 5.0. Он не может заменить собой учебник по этим возможностям.
Для того чтобы использовать новые конструкции J2SE 5.0, проект должен быть совместим с 5.0. Для новых проектов совместимость с 5.0 задается на первой странице мастера Создать > Проект:
Для более тонкой настройки уровень совместимости компилятора можно задать глобально для всей рабочей области (Окно > Параметры > Java > Компилятор) или для каждого проекта отдельно (в контекстном меню проекта выберите Свойства > Компилятор Java). В рабочей области могут существовать проекты с различными уровнями совместимости, даже зависящие друг от друга. Тонкой настройке поддаются также сообщения о предупреждениях и ошибках, которые компилятор выдает для проектов. Это можно сделать на странице Свойства > Компилятор Java > Ошибки/предупреждения > Опции J2SE 5.0
Параметризуемые типы позволяют объектам одного и того же класса безопасно работать с объектами различных типов.
Например, тем самым можно обеспечить, что во время компиляции
List<String>
всегда содержит String
, а List<Integer>
- Integer
.
Обработка параметризуемых типов осуществляется в Eclipse так же, как и непараметризуемых:
В Eclipse 3.1 есть новые опции для поиска ссылок на параметризуемые типы. Рассмотрим следующий пример:
List<Integer>
.
При вызове Поиск > Ссылки > Проект
будут выделены типы List в четырех строках:
Отфильтровать несовместимые - останутся только ссылки на типы, для которых можно выполнять присваивание для выбранного типа:
Отфильтровать неточные - останутся только ссылки на типы с точной сигнатурой:
Аннотации предоставляют мета-данные о том, как применяются методы и типы Java. Они отражаются в исходном коде Java и могут влиять на компиляцию. Их также можно опрашивать во время выполнения.
Например, @Override
вызовет предупреждение компилятора, если аннотированный метод не переопределяет метод базового класса:
Все, что доступно для типов Java, можно делать и с аннотациями:
Очень полезная аннотация в Eclipse - это @SuppressWarnings
.
Рассмотрим метод типа private, который пока не используется:
@SuppressWarnings
:
foo
:
Перечисление определяет тип, значением которого может являться элемент из заранее определенного набора объектов:
Все, что доступно для классов Java, можно делать и с перечислениями:
Автоматическое приведение типов обеспечивает элегантное оформление кода, в котором простые типы преобразуются в типы объектов:
В Eclipse обработка автоматического приведения типов выполняется безошибочно, локальным переменным присваиваются правильные типы, и помощник по коду обрабатывает эти ситуации. Для лучшего понимания кода можно помечать случаи автоматического приведения типов как предупреждения при компиляции (Окно > Параметры > Java > Компилятор > Ошибки/предупреждения > Опции J2SE 5.0 > Автоматическое приведение типов), или выделять их цветом (Окно > Параметры > Java > Редактор > Подсветка синтаксиса > Java > Приведенные типы):
Часто встречается ситуация, когда операцию следует выполнить с каждым элементов из массива или коллекции. В J2SE 5.0 для этого предусмотрена особая конструкция. В Eclipse 3.1 входит шаблон для кода "foreach" code, который автоматически распознает набор, с которым необходимо выполнить итерацию:
Eclipse 3.1 также предлагает быструю помощь "Преобразовать в расширенный цикл for" для обновления циклов for
в стиле 1.4 там, где это возможно.
Все прочие возможности J2SE 5.0 также поддерживаются инструментами редактирования, поиска и обработки кода в Eclipse.