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

时间:2014-05-22 14:37:19

标签: java intellij-idea structural-search

我有一些遗留代码,我想标记所有这些代码及其所有方法@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 个答案:

答案 0 :(得分:1)

不幸的是,由于我没有合适的IntelliJ版本,我无法对此进行测试。但是当我找到here时,您可以为类内容使用变量。

搜索模板:

    class $Class$ {
       $MyClassContent$
    }

替换模板:

    @Deprecated
    class $Class$ {
       $MyClassContent$
    }

MyClassContent变量的最小和最大出现次数应分别设置为0Integer.MAX_VALUE。这应该留给您注释的类。

现在,我想你也可以用方法模板做同样的事情。我不知道的是,您是否可以将方法模板应用于源中的所有方法。这样你就可以进行两步搜索并替换:首先是类,然后是方法。