Модернизированная миграция до 2.0
При переходе на Retrofit убрать все сервисные вызовы, содержащие обратные вызовы, - кошмар. Я использовал Structural Search and Replace, но мне приходится повторять шаблоны из-за разного количества аргументов для вызова метода. Мои шаблоны следующие,
Шаблон поиска
$MethodType$ $methodName$(
$paramtype1$ $param1$,
$paramtype2$ $param2$,
Callback<$type$> callback);
Заменить шаблон
Call<$type$> $methodName$(
$paramtype1$ $param1$,
$paramtype2$ $param2$);
Я использовал число для параметров, чтобы обратиться ко всем сервисным вызовам, которые у нас есть. Интересно, есть ли какой-нибудь способ написать шаблон поиска, который бы нашел все методы, у которых в качестве параметра был "Обратный вызов".
1 ответ
Можно использовать такой шаблон поиска
$MethodType$ $methodName$($paramtype$ $param$, Callback<$type$> $callback$);
Нажмите Edit Variables...
и дать $param$
количество событий 0,∞
, Это найдет все методы с последним параметром типа Callback
и ноль или более других параметров.
Используйте следующий шаблон замены
Call<$type$> $methodName$($paramtype$ $param$);