具有超类使用重构的内联类

时间:2016-08-23 17:47:02

标签: java intellij-idea

假设我有这些课程:

class GoodClass
{
    //... stuff...
    public GoodClass(...) {...}
    //... stuff...
}

class BadClass extends GoodClass
{
    public BadClass(...) {super(...);}
}

class SomeOtherClass extends BadClass
{
    //... stuff...
}

我想删除BadClass并在任何地方使用GoodClass

有没有办法使用IntelliJ IDEA轻松完成?因此,它应该用GoodClass直接替换BadClass的所有用法:应该更改变量/字段类型,应该替换构造函数调用,继承类应该更改其父类,以及其他所有内容,如果我忘记了某些内容。

我试过使用"内联课程"但我没想到会这样做。

1 个答案:

答案 0 :(得分:3)

查找/替换将完成70%的工作。您可能必须稍后自行修复软件包名称。

另一个想法

  1. 将GoodClass重命名为WantedClass;
  2. 将BadClass重命名(在IDE上)为GoodClass;
  3. 关闭您的IDE;
  4. 转到src目录,删除GoodClass.java(旧BadClass);
  5. 现在将WantedClass.java重命名为GoodClass.java
  6. 打开它并更改类名。