使用相应的获取器/设置器搜索/替换属性

时间:2019-03-23 23:18:05

标签: java intellij-idea structural-search

问题:

  

具有大量的类,这些类的属性定义为   第一个字符为大写的名称。

示例:

class FirstClass {
  private Integer FirstValue;
  private Double SecondValue;
  private String ThirdValue;

  public Integer getFirstValue() {
    return FirstValue;
  }
  public Double getSecondValue() {
    return SecondValue;
  }
  public String getThirdValue() {
    return ThirdValue;
  }
  public void setFirstValue(Integer newVal) {
    FirstValue = newVal
  }
  ..
}

目前,我已经设置了一个结构搜索模板,如下所示:

class $class$ {
    private $FieldType$ $Field$;

    public $FieldType$ $MethodCallGet$() {
        return $Field$;
    }

    public void $MethodCallSet$($FieldType$ $parameter$) {
        $Field$ = $parameter$;
    }
}

我已经设置了如下变量:

  • $class$text=^(XYZ|ABC).*
  • $FieldType$all fields of the class
  • $Field$[A-ZÄÖÜ][a-zA-Z0-9_ÄÜÖäüÖ]+
  • $MethodCallGet$text=^get.*
  • $MethodCallSet$text=^set.*

因此,首先它会找到具有大写首字符的属性,但是不幸的是,它只会在每个类(包括它的getter / setter)中找到单个属性。

1。问题:

如何找到所有属性,包括它的getter / setter方法?

2。问题:

我该如何用对应的变更替换属性。已变更 第一个字符只能小写。还在吸气剂/吸气剂中吗?

1 个答案:

答案 0 :(得分:1)

没有使用“结构化搜索”执行此操作的好方法。您可以做的是“ Java |命名约定|字段命名约定”检查,以查找名称不符合指定命名约定的所有实例字段,然后使用检查的快速修复方法一一重命名字段。

您可能还想投票给https://youtrack.jetbrains.com/issue/IDEA-12246