首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >类与java中的同一个类不兼容。

类与java中的同一个类不兼容。
EN

Stack Overflow用户
提问于 2015-03-19 10:33:23
回答 1查看 1.1K关注 0票数 0

我正在使用WebSphere应用服务器。在这一点上,我得到了一个错误,即:

代码语言:javascript
复制
com.savvion.sbm.dms.svo.Document incompatible with com.savvion.sbm.dms.svo.Document.

我在网上搜索,发现在java中,不同的类加载器所造成的错误原因是相同的类加载。

如何使用不同的类加载器防止类加载。或者其他的解决方案。

EN

回答 1

Stack Overflow用户

发布于 2015-03-19 10:56:51

您的问题代码可能如下所示:

代码语言:javascript
复制
Document d = (Document)object;

其中"object“是加载在(自定义?)上的文档类的实例。类加载器,而该类中引用的文档类(即"d“的声明和强制转换中的文档类)被加载到线程的上下文类加载器上。

因此,正如您提到的,VM将这些看作是两个不同的类,即使字节码完全相同:

如果两个类由同一个类加载器加载(§2.17.2),并且具有相同的完全限定名(§2.7.5),则两个类是相同的类(因此也是相同的类型)。

http://docs.oracle.com/javase/specs/jvms/se6/html/Concepts.doc.html#20389

问题的解决方案取决于如何构造和部署特定的应用程序,这可能并不简单。第一步是查看两个类是从哪里加载的。将"-verbose:class“添加到Java命令行参数中产生的输出应该显示类驻留在哪个JAR文件中。

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

https://stackoverflow.com/questions/29142234

复制
相关文章

相似问题

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