【问题标题】:How to avoid assigning child instances to parent class type variables at declaration with Structural Search command in IntelliJ IDEA?如何避免在 IntelliJ IDEA 中使用 Structural Search 命令在声明时将子实例分配给父类类型变量?
【发布时间】:2021-06-19 07:14:03
【问题描述】:

我正在尝试基于结构搜索创建检查 避免将 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");

结构搜索未按预期工作。我的模板有什么问题?

【问题讨论】:

    标签: intellij-idea intellij-14 structural-search


    【解决方案1】:

    我删除了 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>
    

    【讨论】:

      猜你喜欢
      • 2019-08-09
      • 1970-01-01
      • 1970-01-01
      • 2021-05-02
      • 2018-05-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-09-12
      相关资源
      最近更新 更多