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 楼答案
使用结构化搜索没有很好的方法来实现这一点。您可以做的是“Java |命名约定|字段命名约定”检查,找到所有名称不符合指定命名约定的实例字段,然后使用检查的快速修复程序逐个重命名字段
你也可以投票给https://youtrack.jetbrains.com/issue/IDEA-12246