2013-12-13 3 views
25

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

Согласно моему первоначальному наблюдению, единственным отличием было имя одного из параметров.

Прежде чем предпринимать какие-либо шаги и объединить их, я хотел бы сделать сравнение трех методов, чтобы увидеть, есть ли какая-то тонкая разница, которую я не заметил.

Я знаю, что можно сравнить два файла, сравнить их с версией VCS и т. Д., Но мне не удалось найти быстрый способ сравнить определения методов в том же файле.

Есть ли более практичный способ сравнить разные разделы одного и того же файла в IntelliJ, а не копировать их в разные файлы и выполнить сравнение файлов?

Спасибо,

+0

Любой инструмент diff должен помочь вам сделать это, что выбрать - это в основном субъективная тема, и, вероятно, есть тонны вопросов, заданных по этой теме в StackOverflow. –

+0

см. Это http://stackoverflow.com/questions/434766/how-can-i-diff-two-sections-of-the-same-file –

ответ

8

IntelliJ имеет Найдите Дубликаты в анализе. Он очень настраиваемый и ориентированный на язык, так что он не просто ищет блоки текста одинаковыми. Он сможет определить, являются ли два блока кода одинаковыми, но с разными именами переменных, например.

Вы даже можете расширить область действия, чтобы она обнаруживала дубликаты кода, которые находятся в разных файлах.

См. Эту страницу help для получения дополнительной информации.

+4

Стоит отметить, что это доступно только в платной «окончательной версии», а не открытая версия сообщества. (Не то, чтобы это было слишком дорого - это отличный инструмент. Мне просто потребовалось некоторое время, чтобы понять, почему я его не хватает ....) –

56

Другой быстрый способ сравнить методы (или любой блок кода) в пределах IntelliJ:

  1. Скопировать одну версию в буфер обмена.
  2. Выделите другую версию.
  3. Используйте функцию «Сравнить с буфером обмена» из контекстного меню в редакторе или из меню «Вид»> «Сравнить с буфером обмена».
+1

Отлично ... так полезно! благодаря! – Daren

+3

Это должен быть принятый ответ. – InamTaj

Смежные вопросы