Eclipse Luna: готов для JavaTM8

Java SE 8 является наиболее значительным расширением модели программирования на Java, и Затмение Луны (R 4.4) был перезагружен, чтобы быть готовым к Java 8.

Вот краткий обзор полезностей, предоставляемых Eclipse как часть поддержки Java 8:


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

Подготовка Eclipse к готовности к Java 8 включала в себя ряд шагов, заполненных техническими и технологическими задачами для поддержки всех дополнительных обновлений Спецификации языка Java: были разработаны синтаксический анализатор, компилятор и индексатор, был разработан новый механизм вывода типов, поддержка оценки отладчика были добавлены основные обновления в DOM AST и API модели Java, существующая функциональность была переоборудована, чтобы смешаться с новыми языковыми функциями, и была добавлена ​​новая функциональность, чтобы сделать ваш опыт работы с Java 8 более приятным.

  • Eclipse Compiler for Java (ECJ) реализует все новые улучшения языка Java 8.
  • Быстро изменить проект, чтобы быть совместимым с Java 8:
  • Преобразование созданий анонимного класса в лямбда-выражения (и обратно) с помощью Quick Assists (Ctrl + 1) :
    • Преобразовать в лямбда-выражение
    • Преобразовать в создание анонимного класса
  • Или вызовите Source> Clean Up ..., чтобы перенести весь существующий код для использования лямбда-выражений, где это применимо:

    Функциональность для переноса анонимных классов в лямбда-выражения сделана разумной, чтобы гарантировать, что генерируется только правильный код. Он игнорирует преобразование там, где это невозможно, и даже обновляет имена переменных, чтобы предотвратить конфликт имен с переменными из внешней области видимости. Например, преобразование не выполняется, если анонимный класс не реализует функциональный интерфейс, реализует функциональный интерфейс с помощью общего абстрактного метода, содержит дополнительные члены, содержит неквалифицированные ссылки «this» или «super» и т. Д.
  • Измените тело лямбда-выражения на блок или выражение, вызвав «Быстрые помощники» (Ctrl + 1):
  • Новый краткий синтаксис лямбда-выражений и ссылок на методы выглядит неплохо, но он может быть не столь интуитивно понятен для разработчиков из-за предполагаемых целевых типов, предполагаемых типов параметров, различных сокращенных синтаксисов для ссылок на методы и конструкторы и т. Д. Именно здесь Eclipse помогает вам стать более продуктивным при написании или понимании программ с конструкциями Java 8.
    • Чтобы просмотреть метод, реализованный экземплярами функционального интерфейса, просто наведите курсор на:
    • Чтобы перейти к объявлению функционального метода, удерживайте клавишу Ctrl , наведите указатель мыши на «->» или «::» и щелкните гиперссылку:
  • Вы можете управлять форматированием лямбда-выражений с помощью новых опций Formatter :
  • Вы можете искать выражения ссылок на методы в Java Search , ограничивая расположение соответствия методов или конструкторов ссылками на методы:
  • Представление « Иерархия типов» и « Быстрая иерархия» (Ctrl + T) (в функциональном интерфейсе и его абстрактном методе) показывают лямбда-выражения также в виде реализаций функционального интерфейса:
  • Eclipse также предоставляет поддержку Content Assist (Ctrl + Space) для ссылок на методы:
  • Быстро идентифицируйте абстрактные (A), стандартные (D) и статические (S) методы интерфейса в представлениях, таких как Outline, Search, Type Hierarchy, Quick Outline / Hierarchy, с помощью новых значков:
  • Отладчик Java поддерживает точки останова в лямбда-выражениях, а также оценку или проверку в контексте методов интерфейса:
  • JEP 118 предоставляет возможность хранить информацию о параметрах метода в файлах классов, когда программист выбирает это. Затем эта информация может быть использована для размышления. В режиме соответствия 1.8 вы можете включить это с помощью новой опции:
  • Функции Java-инструментов, такие как рефакторинг, действия с исходным кодом, помощник по содержимому (Ctrl + пробел), пометки вхождений, выделение расширения, согласование, поддержка процессора аннотаций и т. Д., Были обновлены, чтобы хорошо работать с новыми функциями Java 8. Вот пример поддержки метода extract:
  • JSR 308 представляет аннотации типов в Java 8, а Eclipse обеспечивает поддержку тип аннотации на основе статического нулевого анализа отправив набор аннотаций недействительности в виде версии 2.0.0 пакета org.eclipse.jdt.annotation. С этими аннотациями возможна проверка типа времени компиляции, чтобы гарантировать, что указанные нулевые ограничения не нарушены и все возможные исключения NullPointerException сообщаются (активен, если аннулированный анализ на основе аннотаций включен в настройках Java Compiler> Errors / Warnings):
    Это позволяет разработчикам API создавать лучшие интерфейсы с более строгими правилами о том, что может быть передано и возвращено из API:
  • Компилятор Eclipse для Java (с его новым механизмом логического вывода типа Java 8) также был проверен для успешной сборки крупных проектов, таких как JRE8, OpenJFX и Eclipse SDK (~ 250 проектов).