有没有办法在Intellij Idea中用另一个类替换类?

2022-09-03 04:46:16

伙计们,这是我的问题:我有一些类,在我的项目中的许多地方都使用。我必须用提供的另一个来自jar的类替换这个类。有没有办法重构它?我想这是一个简单的问题,但我不知道如何解决它。

它不是关于替换源代码 - 我想要的是将所有类用法替换为我的库中的类,并能够完全删除我自己的类。想象一下,我已经创建了自己的StringUtils,并发现有一个apache.common StringUtils库,现在我想在我的代码中到处使用它。类方法的签名不是问题:它们重合。

?


答案 1

有这个“迁移”功能。右键单击任何类 -> 重构 ->迁移。

有点烦人的是,您必须创建一个新的迁移集,并且无法从头开始运行它。但它完全符合您的需求。

选择要迁移的类或包,并告知它应更改为哪个类或包。按运行和所有用法被重写。然后,您可以自由删除旧类,因为不会有任何用法。

编辑:在较新版本中,它不再在上下文菜单中。只需转到顶部的菜单 - 重构 - 迁移(或者只是预先移位两次并键入 migrate)。

干杯!


答案 2

如果您使用的是静态方法(如 StringUtils 示例所建议的那样),请委托到以前实现中的新类,例如

public static String myOldMethod(String argument) {
    return MyNewClass.myNewMethod(argument);
}

然后选择重构>内联“,然后在选项对话框中选择”所有调用并删除方法”。通过这种方式,您可以很好地处理方法名称更改和参数顺序更改。


推荐