提问者:小点点

如何使用IntellijIDEA中的StructuralSearch命令查找不推荐使用的java类?


我正在尝试基于“结构搜索和替换”功能创建检查。因此,我需要创建搜索模板来查找java代码中不推荐使用的类的所有用法,但我不知道如何做到这一点。

我已经尝试了设置:搜索模板:$Symbol$ $Symbol$的过滤器:引用=带注释的类; script=com.intellij.psi.impl.PsiImpl.PsiImplUtil.isDeprecated(Symbol),但它不起作用(找不到已弃用类的用法)

例如,我们不赞成使用A类:

@Deprecated
public class A {}

以及此类在 B 类中的用法:

@RunWith(A.class)
public class B {}

共1个答案

匿名用户

您可以为此任务创建两个搜索模板:第一个是已弃用类的搜索模板,第二个是已弃用类引用的搜索模板。

<searchConfiguration name="deprecated class" text="@Deprecated class $C$ {} " recursive="true" caseInsensitive="true" type="JAVA" pattern_context="default">
 <constraint name="__context__" within="" contains="" />
 <constraint name="C" within="" contains="" />
</searchConfiguration>


<searchConfiguration name="reference to deprecated class" text="$ref$" recursive="true" caseInsensitive="true" type="JAVA" pattern_context="default">
 <constraint name="__context__" within="" contains="" />
 <constraint name="ref" reference="deprecated class" within="" contains="" />
</searchConfiguration>

顺便说一句,有一个检查 不推荐使用的 API 用法(Java |代码成熟度 |已弃用的 API 用法),具有类似的功能。