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 {}
我有一个基于 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 {}