intellij-idea - 如何避免在 IntelliJ IDEA 中使用 Structural Search 命令在声明时将子实例分配给父类类型变量?
问题描述
我正在尝试基于结构搜索创建检查,以避免将 ExecutorService 初始化为 Executor 变量。
以下是我的模板:
<searchConfiguration name="Use an ExecutorService variable to initialize instead of Executor" text="Executor $x$ = $y$;" recursive="true" caseInsensitive="true" type="JAVA" >
<constraint name="__context__" within="" contains="" />
<constraint name="x" nameOfExprType="java\.util\.concurrent\.Executor" within="" contains="" />
<constraint name="y" nameOfExprType="java\.util\.concurrent\.ExecutorService" within="" contains="" />
我想避免这种初始化的代码:
private final Executor exec = Execs.singleThreaded("test-%s");
结构搜索没有像我预期的那样工作。我的模板有什么问题?
解决方案
我删除了 x 的“nameOfExprType”。有效。
<searchConfiguration name="Use an ExecutorService variable to initialize instead of Executor" text="Executor $x$ = $y$;" recursive="true" caseInsensitive="true" type="JAVA" >
<constraint name="__context__" within="" contains="" />
<constraint name="x" within="" contains="" />
<constraint name="y" nameOfExprType="java\.util\.concurrent\.ExecutorService" exprTypeWithinHierarchy="true" within="" contains="" />
</searchConfiguration>
推荐阅读
- android - 支持库版本问题
- python - SQLALCHEMY 允许将字符串转换为整数列
- python - 如何在 before_request 中覆盖 jwt_required 函数调用以进行登录路由 api 调用
- linux - 更改 tesseract 依赖版本
- java - 如何获取 List 子类的 REAL 类型参数?
- swift - 如何转物业
进入 SignalProducer ? - c# - 使用 AzureDevops、虚拟测试服务器和 Selenium 如何让我的测试脚本上传文件?
- oracle-apex - Oracle APEX 交互式网格中页脚的奇怪行为
- c# - SQL 参数化与使用 string.format
- c# - Service Fabric - 每个服务实例的动态资源管理