我可以自动重构整个java项目并将大写方法参数重命名为小写吗?
我在一个java项目中工作,其中很大一部分代码是用我不喜欢的格式风格编写的(也是非标准的),即所有方法参数都是大写的(以及所有局部变量) 在IntellJ上,我能够使用“分析->检查代码”,并实际查找所有出现的大写方法参数(超过1000个) 为了修复一个问题,我可以执行“重构>重命名参数”,并且效果很好(假设没有重叠)我可以自动重构整个java项目并将大写方法参数重命名为小写吗?,java,ide,refactoring,intellij-idea,Java,Ide,Refactoring,Intellij Idea,我在一个java项目中工作,其中很大一部分代码是用我不喜欢的格式风格编写的(也是非标准的),即所有方法参数都是大写的(以及所有局部变量) 在IntellJ上,我能够使用“分析->检查代码”,并实际查找所有出现的大写方法参数(超过1000个) 为了修复一个问题,我可以执行“重构>重命名参数”,并且效果很好(假设没有重叠) 是否有一种方法可以自动执行此重构(例如:将以大写字母开头的方法参数重命名为以小写字母开头的相同名称)?我建议您在执行任何操作之前考虑以下几点: 如果这是团队的努力,请通知您的团队
是否有一种方法可以自动执行此重构(例如:将以大写字母开头的方法参数重命名为以小写字母开头的相同名称)?我建议您在执行任何操作之前考虑以下几点:
我建议不要更改原始源文件,但创建一个影子文件树可能是个好主意(例如,旧文件:
src/main/java/com/mycompany/MyClass.java
,新文件src/main/refactured/com/mycompany/MyClass.java
,这样可以区分整个目录).我不知道IDE中有任何直接支持这种开箱即用的重构。因为大多数IDE都支持名称重构(经常使用)。您可能需要编写一些IDE插件,可以浏览源代码(AST)并在后台调用重命名重构,以获得与这种格式匹配的参数名。我使用TextPad或WildPad,以及一堆reg ex replace all,对相当大规模的文件进行了大量此类重构。一直为我工作
我相信,如果首先使用像Eclipse这样的IDE对代码进行格式化(如果没有正确格式化),然后可以设计一个包含方法签名(范围、返回类型、名称、括号、参数列表、括号)的reg ex,那么使用这些工具,您的工作将在几秒钟内完成。您可能需要多个reg-ex替换所有组
唯一需要花费时间的活动就是拿出这样一套reg-ex
希望这有帮助 什么操作系统?听起来像是sed/awkI的工作。我认为操作系统在这里并不重要。我需要的是一个“java结构”替换,而sed/awk并不是真正理想的替代品。使用sed解析java就像使用regex解析html一样。不要这样做,找一个懂这种语言的工具。事实上,批处理重构会很好,但我实际上不知道有什么工具可以做到这一点。还要找
类。forName
-它们的意思是“不要碰!”我不同意关于这是一个危险重构的评论。尤其是重命名方法参数是最安全的重构。同意你应该通知你的团队,但不需要仅仅为了更名而做一个完整的项目……因为规模太大而很危险。我同意重命名一个变量是无害的,但是如果整个项目写得不正确,那么你就有更大的可能遗漏一些东西并破坏整个项目。没有迹象表明OP计划将这一行动通知任何人。教育和宣传的机会就会失去。但你有权发表你的意见,当然。工作起来一定很复杂,因为各个层次都有变化。我能想到的唯一明智的选择是编写IDE脚本。最终这实际上是解决方案。最终没有那么多代码,没有更改现有代码的格式,只有参数。