在IntelliJ中使用结构替换来更改字段保护级别

时间:2012-03-14 03:19:59

标签: intellij-idea structural-search

我正在尝试使用Structural Replace将所有私有字段标记为警告,然后建议将其替换为受保护字段。 (我知道很多人可能不同意我选择的保护等级,但这是一个单独的问题)

我有以下内容:

class $Class$ { 
 @Modifier("private") $FieldType$ $FieldName$ = $Init$;
}

enter image description here

在“编辑变量...”中,我检查了“此变量是搜索目标”的“FieldName”。

这适当地突出显示标记为私有的变量。但是,替换建议是完全错误的:

enter image description here

如何修改结构替换设置以建议保护字段?

更新

我已将搜索/替换字符串更改为以下内容,效果明显更好:

enter image description here

这允许我将private int foo=1等字段定义替换为protected int foo=1。但是,它不适用于private static final int foo=1,它替换为protected int foo=1任何建议?

2 个答案:

答案 0 :(得分:1)

看起来被删除的修饰符是“结构搜索”中的一个旧错误。更换。我已提交a bug report

答案 1 :(得分:0)

使用分组进行正则表达式替换可能会有更多成功。

SSR很挑剔 - 它只适用于实际格式良好的代码段......也许它不支持'static'作为通配符替换?