java - 对于扩展 C 的类,将类型 A 的构造函数变量替换为类型 B

标签 java intellij-idea structural-search

我有大约 100 个类似这样的类。

public class MyClass extends MyBaseClass {
    public MyClass(OldType variable, int var2, OldType v3) {
        //stuff

现在我想用相同的变量名称替换扩展 MyBaseClass 的类中 OldType 类型的所有 构造函数变量,但类型为 < em>新类型。 所以它看起来像这样:

public class MyClass extends MyBaseClass {
    public MyClass(NewType variable, int var2, NewType v3) {
        //stuff

变量的数量和名称会有所不同。

我已经让 IDEA 找到使用结构替换扩展 MyBaseClass 的所有类,但我要从那里开始吗?

最佳答案

实现此目的的一种方法是使用两个搜索步骤。第一步:找到扩展MyBaseClass的类的构造函数的参数。

class $A$ extends $B$ {
    $A$($T$ $p$);
}

变量
B - 文本/正则表达式:MyBaseClass,启用在类型层次结构中应用约束
p - 启用此变量是搜索的目标,出现次数:1,无限制

第二步:替换范围内正确类型的变量以前的搜索结果

OldType $a$

替换模板:

NewType $a$

关于java - 对于扩展 C 的类,将类型 A 的构造函数变量替换为类型 B,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35521909/

相关文章:

java - 使用随机百分比

java - 为什么我的线程似乎总是空闲?

java - 无法找出 Kata Direction Reduction 问题错误

scala - 在 IntelliJ IDEA 中导入 Scala3 SDK

java - IDEA 结构搜索实现特定方法而不是其他方法的类

java - 如何在 Swing 中绘制高分辨率?

java - 我关闭我的 intellij idea,选择 [disconnect]

java - 在没有主类的情况下创建 Jar 库

java - Intellij 替换所有出现的 stringbuilder.toString()

c# - 带有模式方括号的 resharper 搜索