java - 如何在 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 {}
解决方案
您可以为此任务创建两个搜索模板:首先,为已弃用的类搜索模板,第二,为已弃用的类引用搜索模板。
<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 使用)具有类似的功能。
推荐阅读
- javascript - 创建打字稿宏
- python - 用python查询yaml文件
- google-apps-script - AppendRow() 有限行
- powershell - Powershell 5.1 工作流程未重试
- java - SpringBoot Kafka 抛出 NumberFormatException
- sql - 在另一个触发器中启用和禁用触发器
- algorithm - 算法:找出哪些对象持有输入数组的子集
- sql - 关于为大型查询优化数据库的一般问题
- c++ - 基于布尔模板参数的可选参数
- java - 如何在spring oauth2中的ClientRegistration中设置任何属性