首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >调试ClassCastException

调试ClassCastException
EN

Stack Overflow用户
提问于 2020-09-30 08:32:48
回答 1查看 380关注 0票数 4

我遇到了一个ClassCastException

Cannot cast my.package.classA to my.package.classA.

注意,(规范)类(名称)是相同的。

我理解这应该与不同的类加载器和/或从不同的jars加载类有关。该项目是使用Maven构建的。我能否以某种方式调试在每种情况下使用了哪个类加载器,以及从哪个jar加载了类?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-09-30 09:34:25

ClassCastException添加一个断点。对于IntelliJ,如下所示:

一旦捕获异常,在调试器调用层次结构中导航,直到找到应该发生强制转换的行,并且对这两个类都有一个引用。

例如:

现在,您可以检查这两个类(在我的例子中是typeClassinstanceClass)。该类保存对其类加载器的引用。

在我的例子中,是ModuleClassLoader for Module "my.ear" from Service Module LoaderModuleClassLoader for Module "my-web-app.war" from Service Module Loader

正如你所看到的,一个阶级来自耳朵,另一个来自战争。

在应该解决问题的web应用程序provided pom.xml**,中,将依赖项更改为。

请注意,war文件将不再在ear之外运行,如果需要这两种方案,请使用Maven profile

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64133826

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档