IntelliJ或Eclipse将方法的所有用法重构为不同类/接口上的方法

时间:2018-03-29 07:59:08

标签: java eclipse intellij-idea automated-tests refactoring

Java类com.company.session.old.SessionContext在我们的代码库中以下列方式使用(大约1k用法):

import com.company.session.old.SessionContext;

...
SessionContext ctx = SessionContext.create();

我想将其迁移到一个新的实现,其内容如下:

import com.company.session.SessionContext;
import com.company.session.SessionContextManager;

...
SessionContext ctx = SessionContextManager.instance().create();

通过全文搜索和替换,可以轻松迁移导入。实际调用SessionContext.create(SessionContextManager.instance().create(的迁移也可以通过这种方式进行。现在的问题是,这会导致SessionContextManager 未导入,并且需要打开所有这些文件,并替换为自动组织导入。

IntelliJ或Eclipse是否提供搜索方法的所有用法的功能,并使用完全不同的方法替换它,而不是通过纯文本搜索,而是通过一些代码处理机制?

1 个答案:

答案 0 :(得分:4)

在IntelliJ IDEA中,执行此重构的最简单方法是更改​​SessionContext.create()的实现,以便它调用SessionContextManager.instance().create()然后内联该方法。在内联更新所有用法后,您可以恢复旧的实现。