我可以自动重构整个java项目并将大写方法参数重命名为小写吗? [英] Can I automatically refactor an entire java project and rename uppercase method parameters to lowercase?
问题描述
我正在一个java项目中工作,其中很大一部分代码是用我不喜欢的格式化样式编写的(并且也是非标准的),即所有方法参数都是大写的(也是所有本地的)变量)。
I'm working in a java project where a big part of the code was written with a formatting style that I don't like (and is also non standard), namely all method parameters are in uppercase (and also all local variables).
在IntellJ上我能够使用分析 - >检查代码并实际找到所有出现的大写方法参数(超过1000)。
On IntellJ I am able to use "Analyze -> Inspect Code" and actually find all occurrences of uppercase method parameters (over 1000).
要修复一次,我可以做重构>重命名参数,它可以正常工作(我们假设没有重叠)。
To fix one occurrence I can do "refactor > rename parameter" and it works fine (let's assume there is no overlapping).
有没有办法自动执行这个重构(例如:重命名方法参数从大写开始到以小写字母开头的同名)?
Is there a way to automagically doing this refactor (e.g: rename method parameter starting with uppercase to same name starting with lowercase)?
推荐答案
使用源分析器
我认为您需要做的是使用像 javaparser 执行此操作。
对于每个java源文件,将其解析为CompilationUnit,创建访问者,可能使用 ModifierVisitorAdapter 作为基类,覆盖(至少) 访问(MethodDeclaration,arg)
。然后将更改的CompilationUnit写入新文件并在之后执行diff。
For every java source file, parse it to a CompilationUnit, create a Visitor, probably using ModifierVisitorAdapter as base class, and override (at least) visit(MethodDeclaration, arg)
. Then write the changed CompilationUnit to a new File and do a diff afterwards.
我建议不要更改原始源文件,但创建一个shadow文件树可能对我有好处想法(例如旧文件: src / main / java / com / mycompany / MyClass.java
,新文件 src / main / refactored / com / mycompany /MyClass.java
,这样就可以区分整个目录了。
I would advise against changing the original source file, but creating a shadow file tree may me a good idea (e.g. old file: src/main/java/com/mycompany/MyClass.java
, new file src/main/refactored/com/mycompany/MyClass.java
, that way you can diff the entire directories).
这篇关于我可以自动重构整个java项目并将大写方法参数重命名为小写吗?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!