0

Любые мастера IDE, которые болтаются?Использование Intellij Structural Search и Replace для изменения типов объявлений

Я хочу сделать что-то, казалось бы, простой, который, оказывается, довольно трудно: я хочу, чтобы заменить все объявления переменных одного типа с объявлениями переменных другого типа

Ex:

Foo x; ==> Bar x; 
protected final Foo x; ==> protected final Bar x; 
public abstract Foo = Foo() + 7; ==> public abstract Bar = Foo() + 7; 

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

  1. Как я могу или не изменять «модификаторы» как public, final, и так далее, предшествующий Foo объявление переменной, или захватить их, чтобы я могут ли они не потеряться?
  2. Как я могу не заменить правую часть знака равенства в третьем примере?
+0

Вы намерены использовать Структурный поиск и Заменить, или вы бы рассматривали решение на основе регулярных выражений? –

+0

Какую версию IntelliJ IDEA вы используете? –

+0

Не работает ли рефакторинг перенастройки миграции? – Argb32

ответ

0

Структурный поиск & Замена должна работать.

Поиск Узор:

Foo $a$ = $b$; 

Замена Узор:

Bar $a$ = $b$; 

Нажмите Edit Variables и установите Minimum count от b до 0 и Maximum count к 1. Модификаторы должны автоматически сохраняться.