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是否提供功能来搜索方法的所有用法,而不是通过纯文本搜索而是通过某种代码处理机制将其替换为完全不同的方法?

最佳答案

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

08-03 18:15