Начиная с версии 3.1, в Eclipse реализована полная поддержка новых возможностей языка Java J2SE 5.0. Важно отметить, что эта поддержка может быть совершенно прозрачна - все, с чем вы привыкли работать в J2SE 1.4, включая редактирование, компиляцию, отладку, быстрые исправления, рефакторинг, действия с кодом, поиск и прочее - будет точно так же работать с новыми типами и конструкциями J2SE 5.0. В этом документе мы опишем дополнительные полезные возможности, которые Eclipse предоставляет при работе с J2SE 5.0.
Для того чтобы разрабатывать исходный код с J2SE 5.0, необходима среда выполнения J2SE 5.0 или J2SE 6.0.
Если первый запуск Eclipse выполнялся с JRE J2SE 5.0, то эта среда будет применяться по умолчанию.
В противном случае нужно будет подключить эту среду к Eclipse в окне
Java > Установленные JRE.
В этом документе кратко описаны некоторые новые возможности языка в J2SE 5.0. Он не может заменить собой учебник по этим возможностям. Дополнительная информация приведена в этом разделе.
Для того чтобы использовать новые конструкции J2SE 5.0, проект должен быть совместим с 5.0 и содержать 5.0 JRE. Новые проекты автоматически будут совместимы с версией 5.0 при выборе 5.0 JRE на первой странице
мастера Создать проект Java:

Для более тонкой настройки уровень совместимости компилятора можно задать глобально для всей рабочей области
(окно
Java > Компилятор) или
отдельно для каждого проекта (Свойства > Компилятор Java в контекстном меню проекта).
В рабочей области могут существовать проекты с различными уровнями совместимости, даже зависящие друг от друга.
Тонкой настройке поддаются также сообщения о предупреждениях и ошибках, которые компилятор выдает для проектов. Это можно сделать на странице Свойства > Компилятор Java > Ошибки/Предупреждения. Разделы Параметризуемые типы и Аннотации содержат дополнительные опции J2SE 5.0.
Параметризуемые типы позволяют объектам одного и того же класса безопасно работать с объектами различных типов.
Например, тем самым можно обеспечить, что во время компиляции
List<String> всегда содержит String, а List<Integer> - Integer.

В Eclipse есть новые опции для поиска ссылок на параметризуемые типы. Рассмотрим следующий пример:

List<Integer>. При вызове Поиск > Ссылки > Проект из контекстного меню будут выделены типы List в четырех строках:

Аргументы несовместимых типов - останутся ссылки на типы, для которых можно выполнять присваивание для выбранного типа:
Аргументы неточных типов - останутся только ссылки на типы с точной сигнатурой:

Аннотации предоставляют мета-данные о том, как применяются методы и типы Java. Они отражаются в исходном коде Java и могут влиять на компиляцию. Их также можно опрашивать во время выполнения.
Например, @Override вызовет предупреждение компилятора, если аннотированный метод не переопределяет метод базового класса:

Очень полезная аннотация в Eclipse - это @SuppressWarnings.
Рассмотрим метод типа private, который пока не используется:

@SuppressWarnings:

foo:

Перечисление определяет тип, значением которого может являться элемент из заранее определенного набора объектов:

Автоматическое приведение типов обеспечивает элегантное оформление кода, в котором простые типы преобразуются в типы объектов:

В Eclipse обработка автоматического приведения типов выполняется безошибочно, локальным переменным присваиваются правильные типы, и помощник по коду обрабатывает эти ситуации. Для облегчения восприятия кода также можно помечать случаи автоматического приведения и пребразования типов:
Java > Компилятор > Ошибки/Предупреждения)
Java > Редактор > Цветовое выделение синтаксических элементов):

Часто встречается ситуация, когда операцию следует выполнить с каждым элементов из массива или коллекции. В J2SE 5.0 для этого предусмотрена особая конструкция. В Eclipse входит шаблон для кода "foreach" code, который автоматически распознает набор, с которым необходимо выполнить итерацию:


Eclipse также предлагает быструю помощь "Преобразовать в расширенный цикл for" для обновления циклов for в стиле 1.4 там, где это возможно.
Статические импорты позволяют использовать статические поля и методы других классов без квалификации.
Помощник по работе с содержимым в редакторе Java может предложить такие статические элементы и добавить статический импорт, если потребуется. Для того чтобы получать подобные предложения, настройте статический импорт в избранном на странице
Java > Редактор > Помощник по работе с содержимым> Избранное.
@Override и @Deprecatedfor в расширенные циклы