我可以自动重构整个java项目并将大写方法参数重命名为小写吗? [英] Can I automatically refactor an entire java project and rename uppercase method parameters to lowercase?

查看:243
本文介绍了我可以自动重构整个java项目并将大写方法参数重命名为小写吗?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在一个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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆