Intellij IDEA通过整个项目提取常量

时间:2015-01-05 13:58:44

标签: intellij-idea refactoring automated-refactoring

假设我在四个类中有一个“魔术字符串”,我希望它在所有地方被一些常量类中的一个常量替换。 (我说的是Java / Groovy类,但任何其他语言也都会有用。)我能想到的最佳解决方案是在一个类中提取常量,然后使用“在路径中替换”对话框。但这并不能解决常量类的导入问题,而且还有很多工作要做。还有更好的方法吗?

我发现了这个documentation page,但没有提到这个功能。

2 个答案:

答案 0 :(得分:4)

更好的方法是使用查找和替换代码重复... 重构。

像常规一样提取常量,然后在引入的常量上调用查找和替换代码重复... 。它可以找到项目中使用"magic string"的所有位置,并提供用常量引用替换它。

答案 1 :(得分:1)

对于正常的Replace in Path操作,这实际上并不那么难。

首先,您需要进入Settings并启用此功能:Editor - > General - > Auto Import - > 动态添加明确的导入

现在,在某个地方的班级中创建你的常数,并做一个Replace in Path(ctrl-shift-R)

要查找的文字:"foo"

替换为:Constants.FOO

现在,使用查找并继续点击替换以更改除定义它的Constants类之外的所有文件中的此魔术值。

您应该观察到导入会自动添加到每个文件中(假设常量是唯一的)。