有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java用相应的getter/setter搜索/替换属性

问题:

Having a large number of classes which have attributes defined with names where the first character is uppercase.

示例:

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

一,。问题:

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

二,。问题:

如何用它的更改对应项替换属性。改变 第一个字符只能是小写。也在能手/二传手中


共 (1) 个答案

  1. # 1 楼答案

    使用结构化搜索没有很好的方法来实现这一点。您可以做的是“Java |命名约定|字段命名约定”检查,找到所有名称不符合指定命名约定的实例字段,然后使用检查的快速修复程序逐个重命名字段

    你也可以投票给https://youtrack.jetbrains.com/issue/IDEA-12246