gpt4 book ai didi

带有 ClassLoader 的 Java 示例

转载 作者:搜寻专家 更新时间:2023-10-31 20:14:52 26 4
gpt4 key购买 nike

我有一个小问题。我学习 java SE 并找到类 ClassLoader。我尝试在下面的代码中使用它:我正在尝试使用 URLClassLoader 在运行时动态加载类。

URLClassLoader urlcl = new URLClassLoader(new URL[] {new URL("file:///I:/Studia/PW/Sem6/_repozytorium/workspace/Test/testJavaLoader.jar")});
Class<?> classS = urlcl.loadClass("michal.collection.Stack");
for(Method field: classS.getMethods()) {
System.out.println(field.getName());
}
Object object = classS.newInstance();
michal.collection.Stack new_name = (michal.collection.Stack) object;

Java 虚拟机没有看到我的类,我得到以下异常:

Exception in thread "main" java.lang.Error: Unresolved compilation problems: michal cannot be resolved to a type michal cannot be resolved to a type at Main.main(Main.java:62)

你知道我怎么解决这个问题吗?

最佳答案

上面的回答都是错误的,没有理解根本问题。您的 main 指的是由一个类加载器加载的 Stack 类。您的 urlclassloader 正在尝试加载具有相同名称的类。您不能将 loaded 转换为 referred,因为它们不相同,它们属于不同的类加载器。您可以打印每个的 has 代码以查看它们的不同之处。相等性测试还将显示 cclass 引用不同。您的问题可能是因为可以找到 sstack 引用的依赖类,这将导致 NoClassDefErrors 等。您的 main 可能会因 classcastexception 而失败。

关于带有 ClassLoader 的 Java 示例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9691855/

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