Какие инструменты рефакторинга могут переименовать класс Java вместе со всеми его экземплярами с одинаковыми именами? - PullRequest
0 голосов
/ 01 октября 2018

Предположим, у меня есть класс с именем Orange в моем проекте Java NetBeans, который я хотел бы переименовать в Apple.Рефакторинг переименования NetBeans может справиться с этим без труда.Тем не менее, мой проект содержит много экземпляров класса Orange с именем orange, что приводит к большому количеству путаницы в рефакторированном коде в виде строк:

final Apple orange = new Apple();

Мне бы хотелось, чтобы все эти экземпляры -- и предпочтительно также префиксные, такие как juicyOrange и defaultOrange - для переименования в apple, juicyApple и т. д. как часть одного и того же рефакторинга.Разумеется, рефакторинг не должен влиять на переменные разных классов (например, Colour orange должен оставаться как есть) или orange вхождений, где уже есть переменная apple в контексте.Кажется, что IntelliJ IDEA предлагает эту функциональность, но я не могу найти ее в NetBeans 8.2.

Доступна ли эта функция или запланирована либо в самом NetBeans, либо в любом плагине NetBeans?В противном случае, есть ли какой-нибудь отдельный инструмент рефакторинга Java, который предлагает его?

1 Ответ

0 голосов
/ 01 октября 2018

Похоже, что IntelliJ IDEA предлагает эту функцию, но я не могу найти ее в NetBeans 8.2.

Функциональность рефакторинга, которую вы описываете в Intellij IDEA, не существует в NetBeans 8.2,ни в NetBeans 9.0.

Эта функция доступна или планируется в самом NetBeans или в любом подключаемом модуле NetBeans?

Я не знаю никаких плановдобавить эту функциональность, и я не знаю ни одного плагина NetBeans, который делает то, что вы хотите.Если вы хотите, чтобы эта функциональность была добавлена ​​в Apache NetBeans 9.0 , попробуйте поднять запрос на улучшение с помощью отчета об ошибке .

При этом функциональность, предоставляемая Редактировать> Заменить в проектах... может показаться более грубой альтернативой:

ReplaceInProjects

  • Вы можете указать регулярное выражение для текстапоиск.
  • Файлы, которые нужно рассмотреть для модификации, можно указать несколькими способами:

    • Текущий проект.
    • Выбранные проекты.
    • Все открытые проекты.
    • Открытые файлы.
    • Выбранные файлы.
  • Вы можете дополнительно предоставить шаблон для файловбыть измененным, учитывая сложный выбор.Например:

    • Изменить все файлы, содержащие в своих именах "Widget" , с расширением "jsf" в проектах A , B и C .
    • Изменять только открытые файлы с расширением "properties" .

Конечно, эта функция не сложна, и она будет слепо делать то, что вы говорите.Он не может обработать сценарий Colour orange, который вы описали (если вы не гарантируете, что соответствующие файлы исключены на основе ваших критериев выбора файлов).

Если это не так, есть ли какой-нибудь автономный инструмент рефакторинга Java, который предлагает его?

Рекомендовать программное обеспечение здесь не по теме, хотя об этом спрашивали в некоторых закрытыхвопросы здесь.(См. Какие темы я могу задать здесь? )

...