gpt4 book ai didi

java - 将使用 URLClassLoader 创建的对象转换为接口(interface)类型

转载 作者:行者123 更新时间:2023-12-01 12:51:48 25 4
gpt4 key购买 nike

我正在尝试从 jar 文件加载类并创建这些类的实例。所有类都实现 IModule 接口(interface)。

实例已成功创建,但每当我尝试将对象转换为 IModule 类型时,都会收到 ClassCastException。

这是我的代码:

urlCl = new URLClassLoader(new URL[] { classFile.toURL()},System.class.getClassLoader());
Class projectClass = urlCl.loadClass("Project");
IModule projectObj = (IModule) projectClass.newInstance();

我的项目在 Eclipse 中,IModule 是一个单独的项目,被添加到“项目”和“加载器”的类路径中。

对我做错了什么有什么建议吗?谢谢。

最佳答案

在 Java 中,类或接口(interface)由其完全限定名称以及加载它的类加载器来标识。

可能,您正在尝试将对象转换为正确的接口(interface),但由另一个类加载器加载。

看看这个:

Solution for the ClassCastException due to ClassLoader issue

关于java - 将使用 URLClassLoader 创建的对象转换为接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24171194/

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