Scala - 动态类加载 - A 类无法转换为 A 类

2024-01-10

我有一个包含类的简单 jar 文件A:

public class A {}

然后我在运行时加载它:

var classLoader = new URLClassLoader(Array(my_jar_file.toURI.toURL))
var clazz = classLoader.loadClass("A")

没问题,可以加载类了A。这个命令也可以:

clazz.newInstance

但是当我把它投射到A:

clazz.newInstance.asInstanceOf[A]

我收到这个错误:

java.lang.ClassCastException: A cannot be cast to A

请你帮助我好吗?


您的代码意味着您在一个类加载器上下文中可以使用“A”,您可以在其中调用 clazz.newInstance.asInstanceOf[A],这是一个与您获取 clazz 对象的单独上下文。问题是,在两个不同的类加载器上下文中,您有类“A”的两个不同实例。从类“A”的一个版本创建的对象不能在不同的类加载器上下文中转换为另一版本的实例。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Scala - 动态类加载 - A 类无法转换为 A 类 的相关文章

  • 如何在 javascript ES6 类中链接异步方法

    我想链接类中的方法 我对同步方法有问题 但我不知道如何用异步方法做到这一点 例如这个类 class Example constructor this val 0 async setTimeout gt this val 1 return t
  • 了解如何使用 apply 和 unappy

    我试图更好地理解 的正确用法apply and unapply方法 考虑到我们想要序列化和反序列化的对象 这是正确的用法吗 即斯卡拉方式 的使用apply and unapply case class Foo object Foo appl
  • Angular 2+ 从注入动态模板的标记创建 ViewRef

    我想从动态插入到模板中的标记创建一个 ViewRef 根据以下代码示例这可能吗 模板 html
  • 在另一个类中使用一个类对象?

    我正在用 c 制作应用程序 在该应用程序中 我有一个类DataCapture cs 在同一个应用程序中 我有另一个类Listner cs 在 Listner cs 类中 我想使用以下对象DataCapture cs不创建新对象DataCap
  • scala/spark 代码不允许在 hive 中添加列

    如果源数据有新列 我尝试在 Hive 表中添加一列 所有新列的检测都运行良好 但是 当我尝试将列添加到目标表时 我收到此错误 for f lt df schema fields if f name chk spark sqlContext
  • C# 4.0 动态对象和 WinAPI 接口,如 IShellItem(无需在 C# 源代码中定义它们)

    是否可以 使用 C 4 0 中的新动态关键字 使用接口 如 IShellItem 或其他 WinAPI 接口 而无需在 C 源代码中定义它们 或者至少不定义接口成员 我正在尝试类似的事情 const string IShellItemGui
  • Scala:具有复杂结构的树插入尾递归

    我正在 scala 中创建自定义对象树 并且我的插入方法引发堆栈溢出 因为它不是尾递归 但是 我不太清楚如何使其尾递归 我见过使用 累加器 变量的相关示例 但它们要么是只能相乘和覆盖的整数之类的东西 要么是我在适应树时遇到困难的列表 这是我
  • Scala 中值类的隐式 Json 格式化程序

    我有许多值类组成了一个更大的对象案例类 final case class TopLevel foo Foo bar Bar final case class Foo foo String extends AnyVal final case
  • Scala 相当于 Java 的 Number

    我正在尝试为数值域类型构建类型层次结构 例如AYear is an Int 这是一个Number a Percentage is a Double 这是一个Number等等 我需要层次结构以便我可以调用toInt or toDouble关于
  • Scala Array.apply 有何魔力

    来自 scala 2 10 4 的 array scala Array定义为 final class Array T length Int extends java io Serializable with java lang Clonea
  • 如何添加动态片段选项卡项

    我想添加动态选项卡项目 我有一个片段 它是 FragmentOne 它有一个 TextView 我正在尝试在 foreach 中创建 FragmentOne 并添加到选项卡 我测试了 setupViewPager 中的代码 但它不起作用 如
  • Python 类 __div__ 问题

    元组代表分数 我试图通过乘以倒数来除以分数 class Test def init self self x 1 2 def div self div fraction return self x 0 div fraction 1 self
  • 查找java类从哪里加载

    有谁知道如何以编程方式找出java类加载器实际从哪里加载类 我经常从事大型项目 其中类路径变得很长 并且手动搜索并不是真正的选择 我最近有一个problem https stackoverflow com questions 226280
  • Source.getLines 中的默认参数错误 (Scala 2.8.0 RC1)

    假设我运行 Scala 2 8 0 RC1 以下 scala 代码应该打印出文件 c hello txt 的内容 for line lt Source fromPath c hello txt getLines println line 但
  • 加载内容时在 ImageView 中使用“动画圆圈”

    我目前在我的应用程序中使用一个列表视图 可能需要一秒钟才能显示 我目前所做的是使用列表视图的 id android empty 属性来创建 正在加载 文本
  • Java 表达式树 [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有相当于 net的 LINQ 下的表达式树JVM 我想实现一些类似 LINQ 的代码结构Scala
  • 如何只获取父类对象的属性

    我有两节课 class Parent object def init self id name self id id self name name self parent vars id name make a copy def print
  • Spark Scala 将列从一个数据帧复制到另一个数据帧

    我有一个原始数据框的修改版本 我在其上进行了聚类 现在我想将预测列恢复为原始 DF 索引没问题 因此匹配 我该怎么做 使用这段代码我得到一个错误 println Predicted dfWithOutput show println Ori
  • Java - 通过相对路径加载dll并将它们隐藏在jar中

    PART 1 我正在开发一个 Java 应用程序 应该作为 jar 发布 该程序依赖于JNI调用的C 外部库 要加载它们 我使用以下方法System load使用绝对路径 效果很好 然而 我真的想将它们 隐藏 在 JAR 中 所以我创建了一
  • Java 中的“Lambdifying”scala 函数

    使用Java和Apache Spark 已用Scala重写 面对旧的API方法 org apache spark rdd JdbcRDD构造函数 其参数为 AbstractFunction1 abstract class AbstractF

随机推荐

  • CSS calc 在 Safari 和后备中不起作用

    我正在研究这个布局 它强烈依赖 CSS calc 来进行必要的计算 width webkit calc 50 20px width moz calc 50 20px width calc 50 20px 现在 我无法让它在 Safari 中
  • NHibernate、代理和平等

    我正在使用 NHibernate 3 3 1 并发现非常有趣的问题 在我的域模型中 我定义了两个类 Carriage 和 CarriageRequest 相互引用 因为延迟加载已打开 所以当我访问carriage CarriageReque
  • 在 .NET Core 中自动创建私钥、CSR 和最终签名证书的过程

    有人向我提供了中间证书 由根证书签名 及其密码 为了安全地连接到 SSL 端点 我需要提供签名证书 这是我所做的 创建私钥 使用该私钥创建 CSR 使用提供的中级证书对其进行签名 我使用 openssl 来完成这一切 它运行得非常完美 TL
  • 服务中的断点不起作用

    我正在尝试向在单独线程上运行的服务添加断点 无论我将断点放置在服务中的哪个位置 它们总是被忽略 我确信该服务正在运行 正如我所看到的Log e在日志猫中 我的调试模式也可以正确使用 因为应用程序主线程中的任何断点都可以工作 我错过了什么吗
  • 从 Django 内部调用时,Subprocess.Popen 与交互式程序一起挂起

    我编写了一个小型 Django 应用程序 它根据用户输入执行交互式程序并将输出作为结果返回 但由于某种原因 子进程挂起 在验证日志时 我发现必须给出 n 作为对挑战的响应的地方 该响应似乎从未做出过 有趣的是 如果我从 Django 外部运
  • Hibernate 锁定模式/锁定选项

    我正在浏览 Hibernate 文档并遇到了LockModes 这些是否与Isolation levels我们用于数据库 它们有何不同Isolation levels 我正在尝试一个简单的示例 并观察到当我使用 session load 方
  • 从 makefile 调用 flex

    我想调用 flex 来构建一个 l 文件 然后调用 gcc 来构建所有内容 I tryed comp lex scanner l gcc o a out main c hash c I error lex scanner l gcc o a
  • 如何开始黑莓编程? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 编码文件路径

    net 中是否有内置方法可以像编码 url 一样对文件路径进行编码 例如 如果我的文件名中有非法字符 例如 whatever whatever 我希望它对 进行编码 这样它仍然存在 只是进行编码以便系统接受它 我想做类似的事情Path En
  • php,while()循环中的无限循环

    infinite loop x 1 while x 9 echo x x 我不明白背后的原因 为什么上面的代码会导致无限循环 在我看来 上面的代码应该输出 9 一次 但它输出无穷无尽的999999999 首先 当 x 等于 1 时 whil
  • Smack 的 FileTransferManager.createOutgoingFileTransfer 仅接受完整的 JID。如何在 Smack 中确定用户的完整 JID?

    经过几个小时的调试并试图找出为什么使用 aSmack 无法进行文件传输 而正常的消息传递却可以 我终于设法将其确定为这一点 当我按照 Smack 文档中给出的方法获取用户的名册列表时 Openfire 服务器发送的名册 JID 末尾缺少 C
  • 使用当前行值更新变量

    我正在尝试执行一项复杂的操作 其中我提取整列数据的总和 并从每行的总和中减去运行小计 我可以单独完成 Sum 和 Running Subtotal 的组成部分 用它来运行小计 sum UsageMetric over order by Ne
  • IE9、表格和显示:块

    对于我网站的低宽度移动版本 我切换了display某些的table tr td and th to block 让它们垂直堆叠 我使用此技术来允许宽表继续显示其所有内容 而不会溢出其容器之外 它在所有现代 5 种浏览器中都能完美运行 但在
  • 如何在 Android 中以最佳方式调整位图大小?

    假设我有一个六边形 如果我调整它的大小以在包含六边形网格的应用程序中使用它 bgPaint new Paint bgPaint setAntiAlias true bgPaint setDither true Bitmap coloredB
  • iOS - 如何使用 NIB 中的特定框架初始化自定义 UIView

    我想知道初始化自定义的最干净的方法是什么UIView具有特定的框架 The UIView是由一个设计的XIB file 这是我的实现 class CustomView UIView IBOutlet var outletLabel UILa
  • 为 Debian Lenny 编译 OpenCV 2.4.2

    为了保留问答方面 我在最新 v 2 4 2 OpenCV 版本中遇到了一个奇怪的问题 安装失败并出现以下错误 在 OpenCV 2 4 2 modules core src system cpp 460 包含的文件中 OpenCV 2 4
  • 如何告诉 CMake 在 Windows 上使用 Clang?

    我有一个使用 CMake 构建的 C 项目 我通常在 OSX 上构建 但现在我正在尝试让 Windows 版本也能工作 出于兼容性原因 我想在 Windows 上使用 Clang 我从 LLVM 安装了预编译的 Clang 3 8 二进制文
  • 为什么无法在组合框中选择空值?

    在 WPF 中 似乎不可能从组合框中选择 使用鼠标 空 值 Edit澄清一下 这是 NET 3 5 SP1 这是一些代码来说明我的意思 首先 C 声明 public class Foo public Bar Bar get set publ
  • 使用别名更改默认 python 版本

    我想知道是否使用alias在终端中更改默认的Python版本对脚本中Python的后续调用有积极的影响吗 例如 我使用 alias python python36 run program 现在假设 run program 是一个调用多个嵌套
  • Scala - 动态类加载 - A 类无法转换为 A 类

    我有一个包含类的简单 jar 文件A public class A 然后我在运行时加载它 var classLoader new URLClassLoader Array my jar file toURI toURL var clazz