Я хотел бы изменить метод с определенной сигнатурой:Intellij структурный метод замены изменения подписи
public OldReturnType get.*(Params) {
//lots of code
}
к этому:
public NewReturnTyp get.*(Params) {
//lots of code
}
-> Я хотел бы заменить тип возвращаемого , Я пробовал это с ССР:
Скопируйте существующий шаблон «методы класса». Вы получите шаблон:
класс $ Класс $ { $ ReturnType $ $ Имя метода $ ($ ParameterType $ $ Parameter $); }
Я первый попытался заменить $ ReturnType $ OldType и NewType respectivly:
Поиск шаблона:
class $Class$ {
OldType $MethodName$($ParameterType$ $Parameter$);
}
Заменить Шаблон:
class $Class$ {
NewType $MethodName$($ParameterType$ $Parameter$);
}
Это дает мне все методы, но если я его заменил, метод будет удален.
Затем я попытался изменило характер следующим образом:
Поиск шаблона:
class $Class$ {
$OldType$ $MethodName$($ParameterType$ $Parameter$);
}
И уточнил, что $ OldType $ должны быть целью поиска. Я также указал шаблон RegEx: OldType для этой переменной.
Заменить Шаблон:
class $Class$ {
NewType $MethodName$($ParameterType$ $Parameter$);
}
Это также находит все методы, но они удаляются, если я заменю. Я пробовал совсем по-другому, всегда с тем же результатом: метод удаляется, если я заменю совпадение. Как мне указать шаблон поиска/замены, чтобы просто заменить OldType на NewType в подписи.
Вид: Проблема в том, что некоторые параметры теряют свой последний модификатор, поэтому я получаю некоторую ошибку компилятора в анонимных внутренних классах. Но я сделал это вручную, и я думаю, что ошибка, о которой вы упомянули, является причиной моих ругательств (-.) Я буду принимать ваш ответ, потому что я думаю, что это хороший старт для следующего человека, который хочет это сделать, но для меня, проблема решена. – morpheus05
Думаю, вам понадобится что-то подобное в вашей строке для подписи метода: $ accessModifier $ $ static $ OldType $ MethodName $ ($ ParameterType $ $ Parameter $) { и установить min/max подсчитывается до 0 и 1. – mish
@mish Невозможно использовать переменные для модификаторов в SSR. Шаблоны всегда должны быть допустимыми компилируемыми java-кодом (фрагменты). –