我在做一个项目,我有以下结构:
(1) 一个包含一些case类、traits和抽象类的api。
(2) 使用api(1)作为依赖项的主jar(api作为deps发布并在build.sbt中使用)。
(3) 我们有时需要创建jar并在运行时使用类utils将它们加载到主jar(2)中,因为我们知道这些jar也使用api(1)作为依赖项。
现在,第三点一切正常,即在运行时从jar加载类,并确保这些类正确扩展api类: clazz = classLoader.loadClass("name") return clazz.asInstanceOf[MyClass]
但是我在api中对myclass做了一个小改动,主要是在我的抽象类的签名中添加一个隐式参数,之后我就不能再识别外部JAR(在运行时加载),我不断得到以下错误:
[error] (run-main-0) java.lang.ClassCastException: java.lang.Class cannot be cast to MyClass [error] java.lang.ClassCastException: java.lang.Class cannot be cast to MyClass
api中的myclass签名如下所示: abstract class MyClass (implicit val something: Type) extends AnotherClass {
任何帮助绕过这是感谢各位。如果需要,我也可以提供更多细节。谢谢
暂无答案!
目前还没有任何答案,快来回答吧!