Как добавить @Deprecated к каждому классу и каждому конструктору / методу каждого класса?
У меня есть старый код, и я хочу отметить все из них и все их методы @Deprecated
так что, когда мы пойдем и дотронемся до них, мы сможем удалить эти аннотации, чтобы мы могли отслеживать, что было модернизировано, а что еще плохо.
Я пытаюсь использовать Structural Search/Replace
и не могу, кажется, получить правильный шаблон.
Шаблон поиска
class $Class$ {
$ReturnType$ $MethodName$($ParameterType$ $Parameter$) { $Stmt$; }
}
Заменить шаблон
@Deprecated
class $Class$ {
@Deprecated
$ReturnType$ $MethodName$($ParameterType$ $Parameter$) { $Stmt$; }
}
Но это удаляет все остальное, что есть в классе.
@Deprecated
class OldAndCrusty {
@Deprecated
( );
}
Это удаляет все модификаторы видимости и окончательные модификаторы всех классов, которые ему соответствуют.
Как мне заменить эти вещи и оставить остальную часть кода в покое?
1 ответ
К сожалению, я не могу проверить это, поскольку у меня нет правильной версии IntelliJ. Но, как я обнаружил здесь, вы можете использовать переменную для содержимого класса.
Шаблон поиска:
class $Class$ {
$MyClassContent$
}
Шаблон замены:
@Deprecated
class $Class$ {
$MyClassContent$
}
Минимальное и максимальное количество вхождений для MyClassContent
переменная должна быть установлена в 0
а также Integer.MAX_VALUE
соответственно. Это должно оставить вас с аннотациями классов.
Теперь, я полагаю, вы можете сделать то же самое с шаблоном метода. Чего я не знаю, так это того, можете ли вы применить шаблон метода ко всем методам в источнике. Таким образом, вы сможете выполнить двухэтапный поиск и замену: сначала для классов, затем для методов.