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

Kut*_*ach 12 java refactoring intellij-idea

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

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

Fra*_*ank 22

有这种"迁移"功能.右键单击任何类 - >重构 - >迁移.

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

选择要迁移的类或包,并告诉它应该更改哪个类或包.按下运行并重写所有用法.然后你可以自由删除旧类,因为没有用法.

干杯!


Ale*_*exR -1

虽然我不是 IntelliJ 的专家,但我可以告诉你,通常在 java 中,类加载是按顺序完成的。我的意思是类加载器正在按顺序查找类,因此如果同一个类多次出现在类路径中,它将采用第一个版本。

因此,这取决于您如何运行应用程序。例如,如果您使用命令行,java -cp lib.jar;myapp.jar com.mycompany.Main并且 lib.jar 和 myapp.jar 都包含相同的 Util 类,则将使用 lib.jar 版本。

如果您想在从 IDE 运行时达到相同的效果,请尝试检查项目属性。也许您可以控制库 jar 相对于项目类的顺序?如果没有,您可能可以将 jar 添加到引导类路径。在这种情况下,将 lib.jar 添加到引导类路径(只是为了在您的 IDE 上工作)。

祝你好运。