如何将@Deprecated添加到每个类和每个类的每个构造函数/方法中?

2022-09-03 03:07:33

我有一些遗留代码,我想标记它们和所有的方法,以便当我们去触摸它们时,我们可以删除这些注释,这样我们就可以跟踪哪些已经现代化,哪些仍然是的。@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$
    }

变量的最小和最大出现次数计数应分别设置为 和。这应该会给您留下带注释的类。MyClassContent0Integer.MAX_VALUE

现在,我想你也可以用方法模板做同样的事情。我不知道的是,您是否可以将方法模板应用于源中的所有方法。这样,您应该能够执行 2 步搜索和替换:第一步用于类,接下来用于方法。


答案 2

推荐