java - 哪些重构工具可以重命名 Java 类及其所有类似名称的实例?
问题描述
假设我的 NetBeans Java 项目中有一个名为的类Orange
,我想将其重命名为Apple
. NetBeans 重命名重构可以毫无困难地处理这个问题。但是,我的项目包含许多Orange
名为 的类的实例orange
,导致许多令人困惑的重构代码,如下所示:
final Apple orange = new Apple();
作为同一重构的一部分,我希望将所有这些实例(最好还有像juicyOrange
and之类的前缀)defaultOrange
重命名为apple
,juicyApple
等。重构当然不应该影响不同类的变量(例如Colour orange
应该保持原样),或者上下文中orange
已经存在apple
变量的情况。IntelliJ IDEA似乎提供了这个功能,但我在 NetBeans 8.2 中找不到它。
NetBeans 本身或任何 NetBeans 插件中是否提供或计划了此功能?如果做不到这一点,是否有任何独立的 Java 重构工具提供它?
解决方案
IntelliJ IDEA 似乎提供了这个功能,但我在 NetBeans 8.2 中找不到它。
您在 Intellij IDEA 中描述的重构功能在 NetBeans 8.2 和 NetBeans 9.0 中都不存在。
NetBeans 本身或任何 NetBeans 插件中是否提供或计划了此功能?
我不知道添加此功能的任何计划,也不知道有任何 NetBeans 插件可以满足您的需求。如果您希望将此功能添加到 Apache NetBeans 9.0 中,请考虑通过错误报告提出增强请求。
也就是说,Edit > Replace in Projects...提供的功能可能值得将其视为更粗略的替代方案:
- 您可以为要搜索的文本提供正则表达式。
可以通过多种方式指定要考虑修改的文件:
- 当前项目。
- 选定的项目。
- 所有打开的项目。
- 打开文件。
- 选定的文件。
您还可以为要修改的文件提供一个模式,以便进行复杂的选择。例如:
- 修改项目A、B和C中所有名称中包含“Widget”的文件,文件扩展名为“jsf”。
- 只修改扩展名为“properties”的打开文件。
当然,这个功能并不复杂,它会盲目地做任何你告诉它的事情。它无法处理Colour orange
您描述的场景(除非您确保根据您的文件选择标准排除相关文件)。
如果做不到这一点,是否有任何独立的 Java 重构工具提供它?
推荐软件在这里是特别离题的,尽管在这里的一些封闭问题中已经提出了这一点。(请参阅我可以在这里询问哪些主题?)
推荐阅读
- javascript - 使用带有 SSR (Next.js) 应用程序的 localStorage 持久化 React 状态时遇到问题
- node.js - Mocha/Chai 中的断言/期望无法捕获构造函数中的抛出错误
- jasper-reports - 隐藏列过滤或格式化按钮
- mysql - Sequelize Upsert 正在创建而不是更新
- asp.net-web-api - Asp.NET core 3 自定义模型属性错误处理
- html - 为什么我的导航栏没有正确折叠并显示下拉按钮?
- javascript - 用户登录后将 Vue Router 重定向到预期页面
- javascript - Javascript - 点击功能给出意想不到的结果
- c++ - 从 OBS dshow 过滤器捕获
- django - 如何打印外键模型关系?