JavaRush/Java блог/Random/IntelliJ IDEA 2019.1: что нового в нашей любимой IDE?

IntelliJ IDEA 2019.1: что нового в нашей любимой IDE?

Статья из группы Random
участников
Совсем недавно обновилась IntelliJ IDEA, интегрированная среда разработки, которую используют и профессионалы (создатели и выпускники JavaRush в их числе), и будущие программисты (в частности, почти все студенты JavaRush). В этой статье мы кратко опишем нововведения в IDEA, которые касаются Java-разработчиков.

Поддержка preview-функции из Java 12 — Switch Expressions (JEP 325) и обнаружение дубликатов Switch

В марте вышла двенадцатая версия языка Java, и одно из интересных изменений в ней — новая форма выражений с оператором switch. Этот оператор в его классическом виде отличается несколько громоздким синтаксисом, что порождает постоянные ошибки, сложность в отладке и заслуженную нелюбовь разработчиков. В JDK 12 switch решили реабилитировать, и его синтаксис был упрощён. Однако по непонятной непосвященным причине новую фичу включили в 12-ю Java только в виде Preview (это значит, её нужно “подключать” вручную даже после установки JDK 12). Обновлённая IDEA научилась полноценно работать со всеми видами оператора switch. IDE также научилась обнаруживать дубликаты ветвей в switch и объединять их посредством быстрого исправления.

Подробности о нововведениях в JDK12 можно найти в статье Java 12 уже здесь: что нового?

Рефакторинг: расширение функции extract variable

IntelliJ IDEA умеет реорганизовывать строковые литералы и исполняемый код. Так, если вам нужно изменить какую-то переменную, достаточно выделить её и выбрать параметр Extract variable и тогда она будет заменена во всём коде. Теперь функция будет сохранять семантику подвергаемых изменению выражений ещё лучше. Среда сможет извлечь переменную даже из инициализатора поля, а также для извлекаемой переменной стало возможным автоматически преобразовывать тернарный оператор в «if», если условие будет важным (условие считается важным, если оно имеет нулевую проверку или проверку «instanceof»).

Более точная подсветка условий в тернарных выражениях

IntelliJ IDEA 2019.1 обеспечивает более точную подсветку сомнительных мест в тернарных выражениях. Теперь будет подсвечено только то условие, в котором оказалось нарушение допустимости значения null, тогда как ранее подсвечивалось всё тернарное выражение, даже если нарушение было только в одной ветке. Благодаря этой новой функции подсветка стала более точной и в случае switch-выражений.

Улучшен анализ математических операций

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

Улучшение аннотации @Contract

Аннотация @Contract используется для определения договора, которому должен соответствовать метод. Это позволяет IDE находить проблемы в методах, которые вызывают аннотированные методы. У @Contract есть два атрибута — value и pure. Атрибут value содержит предложения, описывающие причинно-следственную связь между аргументами и возвращаемым значением. Атрибут pure (“чистый”) предназначен для методов, которые не изменяют состояние своих объектов, а просто возвращают новое значение. Если его возвращаемое значение не используется, удаление его вызова не повлияет на состояние программы или не изменит семантику, если только вызов метода не вызывает исключение (исключение не считается побочным эффектом). Так вот, команда IntelliJ IDEA 2019.1 усовершенствовала поддержку аннотаций @Contract. Теперь среда разработки может автоматически определять “чистоту” конструкторов из источников.

Переход от стек-трейса Java к соответствующей позиции в строке

Если вы уже дошли до 9-го уровня квеста Java Syntax на JavaRush, то вы уже слышали о том, что такое стек-трейс. Его суть вкратце состоит в том, что функция, вызванная последней, должна завершиться первой. Теперь, когда вы щёлкаете по трассировке стека Java, IDE попытается определить точное местоположение в строке, к которой нужно перевести курсор. Ранее это привело бы вас только к первому столбцу соответствующей строки.

Изменения в отладчике JVM

  • Появилось новое действие Step Out of the Block, которое позволяет выйти из текущего блока во время отладки проекта с помощью JVM debugger.
  • Если во время отладки вы предпочитаете мышь, вам станет работать ещё удобнее: теперь можно вызвать действие перехода к курсору просто кликнув по номеру строки в режиме отладки.
  • Появилась поддержка synchronized, assert и операторов switch вычислителем выражений отладчика.
На самом деле нововведений в IntelliJ IDEA 2019.1 гораздо больше. О них можно почитать на сайте JetBrains, авторов этой IDE (но только на английском языке).
Комментарии
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
У этой страницы еще нет ни одного комментария