代码之家  ›  专栏  ›  技术社区  ›  krico

我可以自动重构整个java项目并将大写方法参数重命名为小写吗?

  •  11
  • krico  · 技术社区  · 14 年前

    我在一个java项目中工作,其中很大一部分代码是用我不喜欢的格式样式(也是非标准的)编写的,即所有方法参数都是大写的(还有所有局部变量)。

    在IntellJ上,我能够使用“Analyze->Inspect Code”,并实际查找所有出现的大写方法参数(超过1000个)。

    为了解决一个问题,我可以执行“refactor>rename parameter”,它可以正常工作(假设没有重叠)。

    有没有一种方法可以自动进行重构(例如:将以大写字母开头的方法参数重命名为以小写字母开头的相同名称)?

    4 回复  |  直到 14 年前
        1
  •  9
  •   Sean Patrick Floyd    14 年前

    使用源解析器

    我认为你需要做的是使用一个源代码解析器,比如 javaparser 做这个。

    create a Visitor ,可能使用 ModifierVisitorAdapter 作为基类,并重写(至少) visit(MethodDeclaration, arg) . 然后将更改后的CompilationUnit写入一个新文件,然后执行diff。

    我建议不要更改原始源文件,但创建一个影子文件树可能是个好主意(例如,旧文件: src/main/java/com/mycompany/MyClass.java ,新文件 src/main/refactored/com/mycompany/MyClass.java

        2
  •  5
  •   duffymo    14 年前

    我建议你在做任何事之前先考虑几件事:

    1. 如果这是团队工作,请通知您的团队。
    2. 如果这是给雇主的,通知你的老板。
    3. 如果这是检查到一个版本控制系统,意识到你会有差异出来的wazoo。
    4. 如果没有签入版本控制系统,请签入。
    5. 在进行任何更改之前,请进行备份。
    6. 看看在行为没有改变之前和之后是否有一些测试要检查。

        3
  •  0
  •   Siri    14 年前

        4
  •  0
  •   Aditya Jha    14 年前

    我相信,如果首先使用Eclipse之类的IDE格式化代码(如果格式不正确),然后可以设计一个包含方法签名(范围、返回类型、名称、括号、arg list、括号)的reg ex,那么使用这些工具,您的工作将在几秒钟内完成。您可能需要多个替换所有reg-ex集合。

    希望这有帮助!