Как добавить @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
соответственно. Это должно оставить вас с аннотированными классами.
Теперь, я полагаю, вы можете сделать то же самое с шаблоном метода. Я не знаю, могу ли вы применить шаблон метода ко всем методам в источнике. Таким образом, вы сможете выполнить двухэтапный поиск и заменить: сначала для классов, затем для методов.