假设我在四个类中有一个“魔术字符串”,我希望它在所有地方被一些常量类中的一个常量替换。 (我说的是Java / Groovy类,但任何其他语言也都会有用。)我能想到的最佳解决方案是在一个类中提取常量,然后使用“在路径中替换”对话框。但这并不能解决常量类的导入问题,而且还有很多工作要做。还有更好的方法吗?
我发现了这个documentation page,但没有提到这个功能。
答案 0 :(得分:4)
更好的方法是使用查找和替换代码重复... 重构。
像常规一样提取常量,然后在引入的常量上调用查找和替换代码重复... 。它可以找到项目中使用"magic string"
的所有位置,并提供用常量引用替换它。
答案 1 :(得分:1)
对于正常的Replace in Path
操作,这实际上并不那么难。
首先,您需要进入Settings
并启用此功能:Editor
- > General
- > Auto Import
- > 动态添加明确的导入
现在,在某个地方的班级中创建你的常数,并做一个Replace in Path
(ctrl-shift-R)
要查找的文字:"foo"
替换为:Constants.FOO
现在,使用查找并继续点击替换以更改除定义它的Constants
类之外的所有文件中的此魔术值。
您应该观察到导入会自动添加到每个文件中(假设常量是唯一的)。