Intellij,重构派生 classes 以从不同的 class 扩展

Intellij, refactor derived classes to extend from different class

我有一个基于 classes 的面向对象结构,大约有 10 个 classes 派生自该基础 class。我希望对其进行专门化,并且需要更改 class 那 10 个 classes 的扩展。

所以,我有:

B
One extends B
Two extends B
Three extends B
...

我需要将其更改为:

B
B2 extends B
One extends B2
Two extends B2
Three extends B2
...

Intellij 是否具有重构功能,而不是手动检查 classes,让我可以将所有从 B 派生的 classes 改为从 B2 派生?

您可以进行全局搜索和替换,只需将 "extends B" 更改为 "extends B2"。

但还有一种更简洁的方法。

  • 重命名class B为class B2,现在全部继承自B2
  • 然后添加 "extends B" 并创建 class B(可作为快速修复)
  • 运行 从 B2 中重构 "pull members up",选择任何你想移动到 B 的方法。

您可以使用结构搜索和替换。搜索:

class $A$ extends B {}

替换为:

class $A$ extends B2 {}