2017-02-20 45 views
7

Это может быть простой вопрос: как я могу массивно реорганизовать свой Java-код, чтобы сделать большинство аргументов метода «окончательным»? Это должно следовать одному из наших правил «checkstyle». У нас есть тысячи Java-файлов, поэтому вручную редактировать все они, кажется, не приемлемое решение для нас.Массовый рефактор - как добавить ключевое слово final в аргумент метода Java

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

ответ

17

Вы можете использовать механизм проверок IntelliJ для этого:

  1. Перейдите Analyze-> Выполнить осмотр по имени
  2. Поиск по «локальной переменной или параметра может быть окончательным» предупреждение
  3. Убедитесь, что «Параметры метода отчета» - единственная опция.
  4. Выберите корень дерева (он должен прочитать локальную переменную или параметр может быть окончательным»
  5. Нажмите ALT + ENTER и выберите„сделать окончательный“. Это должно добавить модификатор final во всех недостающих местах .

После того, как вы сделали это, вы можете включить эту проверку в вашей IDE, так что предупреждает вас о том, чтобы дальнейшие ошибки:

  1. Navigate т o Файл-> Настройки-> Редактор-> Инспекции
  2. Поиск предупреждения «Локальная переменная или параметр может быть окончательным»
  3. Убедитесь, что параметр «Параметры протокола отчета» является единственной проверкой.
+0

Знаете ли вы, если есть аналогичный способ добавления окончательного атрибута в поля класса? – cwoebker

+0

@cwoebker Вы можете использовать тот же подход, что и проверка «Поле может быть окончательным». – Mureinik

2

Отказ от ответственности: Я не хочу запускать войну IDE, и я не использую intelliJ, поэтому может быть способ сделать это там. Но так как вы спросили об инструменте, чтобы сделать это, и ручное усилие могло бы оправдать использование другой IDE для него, здесь вы заходите в eclipse.

В eclipse вы можете настроить задачу «очистить», чтобы добавить финал, где это возможно. Задачу очистки можно запускать в отдельных окнах редактора, а также во всем проекте из контекстного меню «источник».

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

  • Нет связанных вопросов^_^