gpt4 book ai didi

java - 解决java中的类名冲突

转载 作者:塔克拉玛干 更新时间:2023-11-01 21:51:10 29 4
gpt4 key购买 nike

我有一种情况,我必须加载一个命名类。如果我的类路径中有多个同名类(例如,com.example.myclass),我必须同时加载它们。我正在使用派生自 java.lang.ClassLoader 的 CustomLoader 类的“loadClass()”方法。我没有改变父类的行为,只是调用父类的方法。我的问题是,如果有两个同名的类,我只能加载其中一个。我已经在网上扫描了解决方案,但没有找到任何解决方案。我找到了很多通过创建一个新的类加载器实例来重新加载类的解决方案,但在我的例子中,新实例可能最终会再次加载第一个类。这个问题能解决吗?

编辑:我忘了说这两个同名的类在不同的 jar 文件中。

编辑:Jon 和 Stephen 都给出了相同的解决方案,但我只能将一个标记为答案。抱歉 :(。不过,我对这两个答案都投了赞成票。

最佳答案

相信 JVM 和类库假定类名在类加载器中是唯一的。因此,如果您想为不同的类加载相同的类名,您将需要不同的类加载器(例如,每个 jar 文件一个)。

使用它们可能会很棘手,但这就是你遇到这类事情的问题。

关于java - 解决java中的类名冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3792745/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com