首页 > 解决方案 > 如何在 Intellij IDEA 中使用结构搜索命令查找已弃用的 java 类的用法?

问题描述

我正在尝试基于结构搜索和替换功能创建检查。所以,我需要创建搜索模板来查找 Java 代码中已弃用类的所有用法,但我不明白该怎么做。

我试过 set: Search template: $Symbol$ Filters for $Symbol$: reference=annotated classes; script=com.intellij.psi.impl.PsiImplUtil.isDeprecated(Symbol) 但它不起作用(没有找到不推荐使用的类的用法)

例如,我们已弃用 A 类:

@Deprecated
public class A {}

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

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

标签: javaintellij-idea

解决方案


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

您可以使用“导入模板表单剪贴板”工具导入以下模板 在此处输入图像描述

<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 使用)具有类似的功能。


推荐阅读