哪些重构工具可以将Java类及其所有相似名称的实例重命名?

时间:2018-10-01 10:59:29

标签: java netbeans refactoring rename automated-refactoring

假设我的NetBeans Java项目中有一个名为Orange的类,我想将其重命名为Apple。 NetBeans重命名重构可以轻松解决这一问题。但是,我的项目包含名称为Orange的{​​{1}}类的许多实例,这导致了很多令人困惑的重构代码,如下:

orange

我希望将所有这些实例(最好还加上前缀final Apple orange = new Apple(); juicyOrange)重命名为defaultOrangeapple等,相同重构的一部分。重构当然不应影响不同类的变量(例如juicyApple应该保持原样),或者Colour orange出现在上下文中已经有orange变量的情况下。似乎IntelliJ IDEA提供了此功能,但我在NetBeans 8.2中找不到它。

此功能是否在NetBeans本身或任何NetBeans插件中可用或已计划?如果失败,是否有任何提供它的独立Java重构工具?

1 个答案:

答案 0 :(得分:1)

  

似乎IntelliJ IDEA提供了此功能,但我不能   在NetBeans 8.2中找到它。

您在Intellij IDEA中描述的重构功能在NetBeans 8.2和NetBeans 9.0中都不存在。

  

此功能在NetBeans本身中是否可用或已计划   或任何NetBeans插件中?

我不知道有任何添加此功能的计划,也不知道有任何NetBeans插件可以满足您的需求。如果您希望将此功能添加到Apache NetBeans 9.0 consider raising an enhancement request through a bug report

也就是说,编辑>在项目中替换...... 提供的功能可能值得一看,作为更粗略的选择:

ReplaceInProjects

  • 您可以为要搜索的文本提供正则表达式。
  • 可以通过几种方式指定要考虑修改的文件:

    • 当前项目。
    • 选定的项目。
    • 所有打开的项目。
    • 打开文件。
    • 所选文件。
  • 您还可以为要修改的文件提供模式,以进行复杂的选择。例如:

    • 在项目 A B 中用文件扩展名“ jsf” 修改名称中包含“ Widget” 的所有文件em>和 C
    • 仅修改扩展名为“ properties” 的打开文件。

当然,此功能不是复杂的,它会盲目地执行您所说的任何操作。它无法处理您描述的Colour orange方案(除非您根据文件选择标准确保排除了相关文件)。

  

如果失败,是否有任何独立的Java重构工具可用来   提供吗?

尽管这里有些封闭的问题已经提出了建议,但是推荐软件在这里不是主题。 (请参见What topics can I ask about here?