一次在许多Java类中重命名很多变量

时间:2012-02-16 09:11:57

标签: java

我在一个相当大的Java项目(2500多个类)中工作,它使用旧的代码标准 成员变量以“m_”为前缀(例如m_temperature)。真的没有理由再这样了,我想摆脱它们,但是:

  1. 为了进行更改,我必须一次所有变量
  2. 不得产生任何错误。
  3. 简单地将所有“m_variable”重命名为“变量”的第一种简单方法是不够的,因为这可能会在已经存在的名为“variable”的变量与新重命名的变量之间产生名称冲突。

    所以,总结一下: 如何重命名所有这些讨厌的成员变量而不会遇到麻烦,还有比上面提到的更多的问题吗?

    是的,我知道IDE中的重构/重命名功能请注意我想对所有符合条件的变量进行一次更改而不是右键单击变量并逐个重命名。

6 个答案:

答案 0 :(得分:8)

如下:mass renaming of java variables

by Simulant

  

点击变量名称。

     

1:按[alt] + [shift] + [R]

     

2:输入新名称。

     

3:按[enter]确认。

     

- >此变量的所有实例都将重命名。

答案 1 :(得分:6)

在SC上有一个question,这也是关于Java的大规模重构。最好的答案是使用japvaparser并实现访问者来进行实际的重构。对于简单的重命名,这不应该是那么多工作。

答案 2 :(得分:0)

回答你的第二个问题(还有其他问题

  1. 我会避免全局变量。支持encapsulation,以便您可以本地化功能。
  2. 我会实现一些unit tests,以便您可以验证未来的更改。目前看来您唯一可用的检查是您的项目正确编译。
  3. 我意识到这些都是现有项目中可能存在的大问题。但值得寻找可能的痛点并首先处理这些痛点。

答案 3 :(得分:-1)

在这种情况下,重构工具将有所帮助。重命名变量时,它将在所有相关位置重命名它,包括在不同的类文件中调用它。执行此操作时,如果重命名的变量与现有名称匹配,它会提醒您。

但是我们必须为每个变量手动完成。

答案 4 :(得分:-1)

我不知道这是否可行。 但是我发现这个链接可以使用IntelliJ找到并替换项目中的所有出现。

http://www.jetbrains.com/idea/webhelp/finding-and-replacing-text-in-project.html

答案 5 :(得分:-3)

如果您使用的是eclispe IDE,则可以轻松完成。

<强>步骤:

  1. 选择变量
  2. 右键单击
  3. 点击重构
  4. 点击重命名
  5. 即使在netbeans,您也可以按照相同的步骤操作。 IDE将查找引用和用法并将其全部替换。